мой класс выглядит так
class A{
private:
int id;
public:
A();
int getId();
}
class B{
private:
public:
B();
}
Реализация
//constructor
B::B() : A(){
}
B расширяет класс A.
Ладно, в моей основной cpp у меня есть такая функция
bool checkID(B *obj){
if(obj->getId() > 1){ return true; } else { return false; }
}
Тем не менее, obj-> getId(), getId() говорит, что это невозможно.
Почему это?
По умолчанию C++ использует частное наследование. Используйте B: public A, чтобы публично наследовать от A. Также вам нужно определить наследование в объявлении.
class B : public A {
public:
B();
}
B должен быть получен из A, чтобы члены A были доступны из объектов B.
class B : public A { ... };
return obj->getID() > 1;
, Результатом этого выражения уже является логическое значение, нет необходимости проверять, является ли оно истинным, а затем возвращать true или, если false, возвращать false.error: type A is not a direct base of B