Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 06.04.2010, 15:16   #1
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию Строки - сдвиг строки в право[C++]

Нужно написать программу по наследованию которая измеряет длину строки и сдвигает строку в право на один символ. Программа выдает следующую ошибку:
Цитата:
variant 11 nasledovanie.cpp
d:\мои документы\visual studio 2008\projects\variant 11 nasledovanie\variant 11 nasledovanie\variant 11 nasledovanie.cpp(14) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
d:\мои документы\visual studio 2008\projects\variant 11 nasledovanie\variant 11 nasledovanie\variant 11 nasledovanie.cpp(21) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
main.cpp
d:\мои документы\visual studio 2008\projects\variant 11 nasledovanie\variant 11 nasledovanie\main.cpp(11) : error C2248: 'Row2::Row2' : cannot access private member declared in class 'Row2'
d:\мои документы\visual studio 2008\projects\variant 11 nasledovanie\variant 11 nasledovanie\row.h(13) : see declaration of 'Row2::Row2'
d:\мои документы\visual studio 2008\projects\variant 11 nasledovanie\variant 11 nasledovanie\row.h(11) : see declaration of 'Row2'
d:\мои документы\visual studio 2008\projects\variant 11 nasledovanie\variant 11 nasledovanie\main.cpp(12) : error C2248: 'Row2::Sort' : cannot access private member declared in class 'Row2'
d:\мои документы\visual studio 2008\projects\variant 11 nasledovanie\variant 11 nasledovanie\row.h(15) : see declaration of 'Row2::Sort'
d:\мои документы\visual studio 2008\projects\variant 11 nasledovanie\variant 11 nasledovanie\row.h(11) : see declaration of 'Row2'
Я что то нахожу приватного члена описанного в классе Row2. Подскажите пожалуйста что я не правильно написал. Также просьба проверить правильно ли я написал цикл который сдвигает строку вправо на один символ.

Код программы:
Код:
//Row.h
class Row
{
protected:
	char *Str;
public:
	Row(char* pS);
	~Row();
	int LengthStr();
};

class Row2 : public Row//и посылает сюда
{
	Row2(char* pS) : Row(pS) {};
	~Row2();
	int Sort();
};

//.cpp
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include "Row.h"

using namespace std;

Row::Row(char *pS)
{
	Str = pS;
}

Row::LengthStr()
{
	int Length;
	Length = strlen(Str);
	return Length;
}

Row2::Sort()
{
	int len = LengthStr();
	for (int i = 0; i < len - 1; i++)//цикл который просьба проверить на правильность написания
        swap (Str[i], Str[len - i - 1]);
	cout << " Sdvig vpravo na odin simvol -" << Str;
	return 0;
}

//main.cpp
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include "Row.h"

using namespace std;

int main()
{
	char pL[40] = ("abcdefg");
	Row2 *pS = new Row2(pL);
	pS->Sort();//ошибка посылает на эту строку
	cout << "/r/n";
	cout << "Dlina stroki - " <<pS->LengthStr();
	cout << "/r/n";
	return 0;
}
ArniLand вне форума   Ответить с цитированием
Старый 06.04.2010, 15:47   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
class Row2 : public Row//и посылает сюда
{
	Row2(char* pS) : Row(pS) {};
	~Row2();
	int Sort();
};
Это же то же самое, что и
Код:
class Row2 : public Row//и посылает сюда
{
	private:
	Row2(char* pS) : Row(pS) {};
	~Row2();
	int Sort();
};
И тип наследования на это никак не влияет.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Циклический сдвиг строки матрицы Alex1991 Помощь студентам 1 14.04.2009 21:20
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 10:10
сдвиг строки Анастасия123456789 HTML и CSS 7 24.02.2009 19:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27


03:01.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.