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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чем ошибка? user 
:(
    Опции темы
FrAcTaL_life
Дата 17.11.2003, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Написал на Visual C++6 такую вот фишку:
---------------------------------------------------

Код

//class.cpp
#include <iostream.h>

class DataClass {
private:
     //видимость PrivateDateMember ограничена классом
int PrivateDataMember;

public:
DataClass(int value);//объявление конструктора класса
      //конструктор автом. выполняется при создании объекта данного класса
      //значение получаемое констр. должно быть присвоено PrivateDateMember
      //---------------------------------

      //к переменной PublicDateMember обращение с любого места программы
int PublicDataMember;//объявление переменной с именем PublicDateMember
int PublicMethod(void);//объявление метода(функция принадлежащая классу)
};
//******************************************************************
//определяем конструктор
DataClass::DataClass(int value)
{
//сохраняем переданную величину в PrivateDateMember
PrivateDataMember=value;

}

//*******************************************************************
//отделим определение метода от объявления класса
int DataClass::PublicMethod(void)
//пусть метод возвращает значение переменной PrivateDateMember
{
return PrivateDataMember;
}
//*******************************************************************

void main(){
//объявляем объект класса DataClass
//и одновременно с этим передадим значение конструктору класса(оно будет присвоено PrivateDateMember)

DataClass DataObject(1);
DataObject.PublicDataMember=2;
cout<<"DataObject.PublicDateMember = " <<DataObject.PublicDataMember<<"\n";
cout<<"DataObject.PrivateDateMember = "<<DataObject.PrivateDataMember<<"\n";
}


-------------------------------------------------

Код

--------------------Configuration: classes - Win32 Debug--------------------
Compiling...
classes.cpp
D:\Project\Visual C++\classes\classes.cpp(43) : error C2248: 'PrivateDataMember' : cannot access private member declared in class 'DataClass'
       D:\Project\Visual C++\classes\classes.cpp(6) : see declaration of 'PrivateDataMember'
Error executing cl.exe.

classes.exe - 1 error(s), 0 warning(s)


=====================================

В чем ошибка? Что то с определением локальной переменной?

Это сообщение отредактировал(а) FrAcTaL_life - 17.11.2003, 20:20
PM MAIL   Вверх
RAN
Дата 17.11.2003, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Цитата
видимость PrivateDateMember ограничена классом

Это значит, что переменную можно использовать только в методах класса, как у тебя в функции int DataClass::PublicMethod(void)

Цитата
cout<<"DataObject.PrivateDateMember = "<<DataObject.PrivateDataMember<<"\n";

это попытка достучаться из вне. Это и есть ошибка. Исходя из логики созданного тобой класса надо исправить на
Цитата
cout<<"DataObject.PrivateDateMember = "<<DataObject.PublicMethod()<<"\n";

PM MAIL ICQ   Вверх
FrAcTaL_life
Дата 17.11.2003, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



RANАга
Все получилось...
Спасибо smile.gif

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.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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