error C2065 при доступе к наследуемой переменной
От: Аноним  
Дата: 06.04.11 07:44
Оценка:
подскажите что не так?


class A
{
public:
  int a1;
}

class B : public A
{
public:
  void funB(){a1 = 1 };
}

class C : public B
{
public:
  void funC(){a1 = 2};
}



Ошибка компиляции

: error C2065: 'a1' : undeclared identifier

Re: error C2065 при доступе к наследуемой переменной
От: andrey.desman  
Дата: 06.04.11 07:52
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>подскажите что не так?


Точки с запятой расставь правильно
Re[2]: error C2065 при доступе к наследуемой переменной
От: iking  
Дата: 06.04.11 08:18
Оценка: :)
Здравствуйте, andrey.desman, Вы писали:

AD>Здравствуйте, Аноним, Вы писали:


А>>подскажите что не так?


AD>Точки с запятой расставь правильно


опечатка — упростил пример..

class A
{
public:
  int a1;
}

class B : public A
{
public:
  void funB(){a1 = 1 ;};
}

class C : public B
{
public:
  void funC(){a1 = 2;};
}


Ошибка компиляции

: error C2065: 'a1' : undeclared identifier

Re[3]: error C2065 при доступе к наследуемой переменной
От: uzhas Ниоткуда  
Дата: 06.04.11 08:21
Оценка:
Здравствуйте, iking, Вы писали:

I>опечатка — упростил пример..

http://codepad.org/ObD63LRg

обратите внимание, где точки с запятыми
Re[4]: error C2065 при доступе к наследуемой переменной
От: iking  
Дата: 06.04.11 08:37
Оценка: :))) :))
Блин...

файл A.h

class A
{
public:
  int a1;
}


файл B.h
#include "A.h"
class B : public A
{
public:
  void funB();
}



файл B.cpp
#include "B.h"
void B::funB()
{
  a1 = 1 ;
}



файл C.h
#include "B.h"
class C : public B
{
public:
  void funC(){a1 = 2;};
}



файл C.cpp

#include "C.h"
void C::funB()
{
  a1 = 1 ;
}


Ошибка компиляции

: error C2065: 'a1' : undeclared identifier

Re[5]: error C2065 при доступе к наследуемой переменной
От: andrey.desman  
Дата: 06.04.11 08:41
Оценка:
Здравствуйте, iking, Вы писали:

I>Блин...


Согласен. Кто после определения класса точку с запятой вместо тебя поставит?
Re[5]: error C2065 при доступе к наследуемой переменной
От: о_О
Дата: 06.04.11 08:43
Оценка:
Здравствуйте, iking, Вы писали:

I>Блин...

  лепешка
файл A.h

class A
{
public:
  int a1;
};


файл B.h
#include "A.h"
class B : public A
{
public:
  void funB();
};



файл B.cpp
#include "B.h"
void B::funB()
{
  a1 = 1;
}



файл C.h
#include "B.h"
class C : public B
{
public:
  void funC(){a1 = 2;}
};



файл C.cpp

#include "C.h"
void C::funB()
{
  a1 = 1;
}
Re[5]: Завязывай с С++! Не твоё это...
От: Erop Россия  
Дата: 06.04.11 08:47
Оценка:
Здравствуйте, iking, Вы писали:

I>Блин...


IMHO, прикольная попытка тролления...
Но после того, как тебе выдали точную диагностику, рабочий код и даже ссылку на online-компилятор, это стало не смешно...

Ну и да, если ты в самом деле серьёзно, то завязывай с С++. Этот язык такой невнимательности не прощает...

I>файл A.h

I>

I>
I>class A
I>{
I>public:
I>  int a1;
I>}// ; где?
I>



I>файл B.h

I>
I>#include "A.h"
I>class B : public A
I>{
I>public:
I>  void funB();
I>}// ; где?
I>

Не хватает точки с запятой В САМОМ КОНЦЕ A.h и B.h
И вообще, в конце определения класса в С++ надо писать точку с запятой...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: error C2065 при доступе к наследуемой переменной
От: Erop Россия  
Дата: 06.04.11 09:03
Оценка:
Здравствуйте, andrey.desman, Вы писали:

AD>Согласен. Кто после определения класса точку с запятой вместо тебя поставит?


Дык охотники на троллей и поставят. Только несколько иной пунктуатор обычно юзают...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Завязывай с С++! Не твоё это...
От: iking  
Дата: 06.04.11 09:13
Оценка:
Вообщем есть и точка и запятая...
пишу в блокноте...с телефона

и думаю если бы все таки дело было в запятой ошибка была бы что-то вроде:

missing ';' before 'namespace'


нет? точно нет?


моя ошибка в том что я не указал что на
B::funB()


не ругается.

Как только добавляю ф-цию класса С::funB прет ошибка:

: error C2065: 'a1' : undeclared identifier


Есть варианты?
Re[7]: Завязывай с С++! Не твоё это...
От: Erop Россия  
Дата: 06.04.11 09:26
Оценка:
Здравствуйте, iking, Вы писали:

I>и думаю если бы все таки дело было в запятой ошибка была бы что-то вроде:


I>

I> missing ';' before 'namespace'


I>нет? точно нет?


думай дальше.
Тебе привели РАБОТАЮЩИЙ вариант твоего кода...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: Завязывай с С++! Не твоё это...
От: iking  
Дата: 06.04.11 09:38
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, iking, Вы писали:


I>>и думаю если бы все таки дело было в запятой ошибка была бы что-то вроде:


I>>

I>> missing ';' before 'namespace'


I>>нет? точно нет?


E>думай дальше.

E>Тебе привели РАБОТАЮЩИЙ вариант твоего кода...

Сам то знаешь ответ? просто ради интереса?
когда отвечал — смотрел на код ошибки?
Re[9]: Завязывай с С++! Не твоё это...
От: Erop Россия  
Дата: 06.04.11 09:48
Оценка:
Здравствуйте, iking, Вы писали:

I>когда отвечал — смотрел на код ошибки?


Я думаю, что ты троллишь, и что суть в том, что какие-то из букв русские...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: Завязывай с С++! Не твоё это...
От: iking  
Дата: 06.04.11 10:01
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, iking, Вы писали:


I>>когда отвечал — смотрел на код ошибки?


E>Я думаю, что ты троллишь, и что суть в том, что какие-то из букв русские...


Если честно не знал что такое "троллинг" — теперь знаю

провокационных сообщений с целью вызвать флейм, конфликты между участниками


я задал вопрос — вы как могли не ответили.
тему сменили

Кто из нас тролль? Всем спасибо!
Re[11]: Завязывай с С++! Не твоё это...
От: Erop Россия  
Дата: 06.04.11 10:54
Оценка: -1
Здравствуйте, iking, Вы писали:

I>Всем спасибо!


Для "спасибо" тут есть кнопки...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.