Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с видимостью 
V
    Опции темы
Voldemar2004
  Дата 11.12.2010, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23



Пишу код:

Код

//---------------------------------------------------------------------------
#include <string>
#include <iostream>
//---------------------------------------------------------------------------

using namespace std;

class IHandler
{
        size_t capacity;

        void SetCapacity(size_t capacity);
        size_t GetCapacity();

        size_t Process(std::string text);
};

class CHandler : IHandler
{
        void SetCapacity(size_t capacity)
        {
                capacity = capacity;
        }

        size_t Process(std::string text)
        {
                return GetCharCount(text);
        }

        size_t GetCharCount(std::string text)
        {
                return text.size();
        }
};

//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{

CHandler handler;

handler.SetCapacity(128);
std::string strTest("132133123213");

std::cout << handler.Process(strTest)<<std::endl;

return 0;
}
//---------------------------------------------------------------------------


Ругается на то, что SetCapacity и Process недоступны, что не так ?


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
triclosan
Дата 11.12.2010, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 1
Всего: 12



используйте вместо class - struct
PM MAIL   Вверх
Crafty
Дата 11.12.2010, 23:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 3.11.2008

Репутация: 2
Всего: 14



Так у тебя все методы private что у базового класса, что у производного.
То есть должно быть как-то так:
Код

//---------------------------------------------------------------------------
#include <string>
#include <iostream>
//---------------------------------------------------------------------------
using namespace std;
class IHandler
{
protected:
        size_t capacity;
        void SetCapacity(size_t capacity);
        size_t GetCapacity();
        size_t Process(std::string text);
};
class CHandler : public IHandler
{
public:
        void SetCapacity(size_t capacity)
        {
                capacity = capacity;
        }
        size_t Process(std::string text)
        {
                return GetCharCount(text);
        }
        size_t GetCharCount(std::string text)
        {
                return text.size();
        }
};
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
CHandler handler;
handler.SetCapacity(128);
std::string strTest("132133123213");
std::cout << handler.Process(strTest)<<std::endl;
return 0;
}
//---------------------------------------------------------------------------


Это сообщение отредактировал(а) Crafty - 12.12.2010, 00:02
PM MAIL   Вверх
Voldemar2004
Дата 12.12.2010, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23



Цитата(triclosan @  12.12.2010,  00:52 Найти цитируемый пост)
используйте вместо class - struct
 smile поржал, спасибо.

Цитата(Crafty @  12.12.2010,  00:57 Найти цитируемый пост)
Так у тебя все методы private что у базового класса, что у производного.


Я знаю, если не указано никакого - значит private по-умолчанию. Где написать public ?



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Crafty
Дата 12.12.2010, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 3.11.2008

Репутация: 2
Всего: 14



Voldemar2004, посмотри мой пост выше.
PM MAIL   Вверх
mes
Дата 12.12.2010, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Voldemar2004 @  11.12.2010,  23:06 Найти цитируемый пост)
 поржал, спасибо.

а зря.. в совете не было ничего смешного.. 


Цитата(Voldemar2004 @  11.12.2010,  23:06 Найти цитируемый пост)
Я знаю, если не указано никакого - значит private по-умолчанию. Где написать public ?

это для class..  для struct по умолчанию public..

Добавлено через 1 минуту и 1 секунду
Цитата(Voldemar2004 @  11.12.2010,  23:06 Найти цитируемый пост)
. Где написать public ?

перед теми элементами, которые должны быть доступны.. 



--------------------
PM MAIL WWW   Вверх
Voldemar2004
  Дата 12.12.2010, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23



Цитата(mes @  12.12.2010,  01:16 Найти цитируемый пост)
это для class..  для struct по умолчанию public..
Знаю.

Цитата(mes @  12.12.2010,  01:16 Найти цитируемый пост)
перед теми элементами, которые должны быть доступны.. 
Писал public, а про двоеточие : забыл  smile 



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0624 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.