Форум: Форум C++Разное
Новые темы: 00
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему он не хочет читать приватную переменную?
 
 автор: DEM   (07.01.2007 в 03:21)   письмо автору
 
 


#include <iostream>
using namespace std;

class pr1 {
int printing;
public:
pr1() { printing = 0; }
void set_print(int status) { printing = status; }
};


class pr2 {
int printing;
public:
pr2() { printing = 0; }
void set_print(int status) { printing = status; }
};


int main()
{
system("chcp 1251"); 
pr1 o11;
pr2 o21;
int X;
cout << "\nВведите единицу, что бы запустить первый класс и двойку, что бы второй\n";
cin >> X;
if(X == 1)
{
o11.set_print(1);
}
else if (X == 2)
{
o21.set_print(1); 
}

if(o11.printing == 1)
{
cout << "Первый класс работает!\n";
}
else if(o21.printing == 1)
{
cout << "Второй класс работает!\n";
}
}


Если "int printing;" перенести в публичные, то всё ОК, а так выдаёт ошибку :(


ЗЫ. кстати ХЕОПС, в Visual Studio иожно и юзать главную функцию, не "_tmain()", а просто "main()" :)

  Ответить  
 
 автор: Sergey89   (07.01.2007 в 12:50)   письмо автору
 
   для: DEM   (07.01.2007 в 03:21)
 

>> o11.printing
Вы обращаетесь к приватной переменной класса через объект, что делать нельзя. Можно добавить ещё один метод типа:
int get_print() {
    return printing;
}

  Ответить  
 
 автор: cheops   (07.01.2007 в 14:02)   письмо автору
 
   для: DEM   (07.01.2007 в 03:21)
 

>ЗЫ. кстати ХЕОПС, в Visual Studio иожно и юзать главную функцию, не "_tmain()", а просто "main()" :)
А какая версия и как добились?

  Ответить  
 
 автор: DEM   (07.01.2007 в 14:51)   письмо автору
 
   для: cheops   (07.01.2007 в 14:02)
 

Visual Studio 2005... Никак не добивался :) Просто написал :


#include <iostream>
using namespace std;



int main()
{
system("chcp 1251"); 
                     cout << "Ура! \n";
return 1986438; // Не знаю почему такое число... :)

}

  Ответить  
 
 автор: Sergey89   (07.01.2007 в 14:52)   письмо автору
 
   для: cheops   (07.01.2007 в 14:02)
 

Да вобще в любых версиях можно. Нужно при создании проекта в свойствах указать Empty Project и всё =)

  Ответить  
 
 автор: cheops   (07.01.2007 в 15:36)   письмо автору
 
   для: Sergey89   (07.01.2007 в 14:52)
 

Шайтан :)))

PS Всегда ленился пустой проект создавать :)

  Ответить  
 
 автор: DEM   (07.01.2007 в 16:29)   письмо автору
 
   для: cheops   (07.01.2007 в 15:36)
 

Вот к чему лень привдит :)

Сергей89, точно... и чего я так переменную пытался поставить :)))))) ЧТо-то совсем с головой ))))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования