Регистрация
10 Ноя 2013
Сообщения
68
Репутация
0
Спасибо
0
Монет
0
Изучаю c++ по видеоурокам от itProger а именно на данный момент наследование классов переписывал код как с урока но программа не запускается из за ошибки E0265 функцию "PC::get_info" (объявлено в строке 17) недоступно



#include

#include

#include



using namespace std;



class PC {

private:

int diagonal;

string os;

public:

PC(int diagonal, string os) {

this->diagonal = diagonal;

this->os = os;

}



void get_info() {

cout
 
напиши
class Laptop: public PC;
в плюсах есть еще приватные наследования не знаю зачем, которое ты и вызвал
 
блин как вы это делаете
 
Всё верно. Метод getInfo() есть в классе PC, в Laptop его нет.
 
ChatGPT (11:27:44): Проблема возникает из-за того, что функция `get_info()` в классе `PC` объявлена как приватная. В этом случае она не будет доступна классу-наследнику `Laptop`. Чтобы исправить эту проблему, вы можете изменить модификатор доступа функции `get_info()` на `public`. Вот исправленный код:

```cpp
#include
#include
#include

using namespace std;

class PC {
private:
int diagonal;
string os;

public:
PC(int diagonal, string os) {
this->diagonal = diagonal;
this->os = os;
}

void get_info() {
cout << "OS: " << os << "\ndiagonal: " << diagonal< }
};

class Laptop : public PC { // Укажите public для наследования
private:
float weight;

public:
Laptop(int diagonal, string os,float weight):pC(diagonal,os) {
this->weight = weight;
}
};

int main() {
setlocale(LC_ALL, "RU");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

Laptop mac(16, "Mac", 1.5);
mac.get_info();

return 0;
}
```

После этих изменений программа должна успешно скомпилироваться и запуститься без ошибки E0265.
 
Назад
Сверху