#include "stdafx.h"
#include "iostream"
using namespace std;
class ClassB;
class ClassA{
public:
void View(){
cout<<"This is ClassA"<<endl;
ClassB B;
B.View();
}
};
class ClassB{
public:
void View(){
cout<<"This is ClassB"<<endl;
}
};
int main(int argc, char* argv[]){
ClassA.View();
system("pause");
return 0;
}
Определение класса
Код:
Нужно в классе ClassA создать экземпляр класса ClassB, вызвать метод View();. В книге "C++ для чайников" приведена следующая программа:
Код:
class Student;
class Teacher{
friend void registration();
protected:
int noStudents;
Student *pList[100];
public:
void assignGrades();
};
class Student
{
friend void registration();
protected:
Teacher *рТ;
int semesterHours;
float gpa;
};
class Teacher{
friend void registration();
protected:
int noStudents;
Student *pList[100];
public:
void assignGrades();
};
class Student
{
friend void registration();
protected:
Teacher *рТ;
int semesterHours;
float gpa;
};
Для меня в нем главное понять как объявлять, "прототип" что ли, класса. Как я понял нужно вначале описания всех классов указать class ИмяКласса;. Не проканало. Книжка отсканирована, еще и распознана криво. Так что, если какие ошибки в коде есть, то не обращайте внимание, для меня на данном этапе это не главное.
И еще. Есть ли форматирование кода на сайте? Код вообще не читаем без подсветки.
Вопрос то собственно в чем?
В вашем примере кстати достаточно описать сам класс B выше чем A.
А если будет 3 класса, а из последнего я должен буду вызвать метод класса первого, из первого вызвать метод второго, из которого вызвать метод третьего? Что и куда мне переставлять? :D
Вопрос вот в чем. Занимаюсь по книжке "C++ для чайников". Книжка очень плохого качества. И вот, допустим без перестановки нужно вызвать метод.
В книжке все просто, так:
Код:
class ClassB;
и все. Но ничего не получается.
Тогда это (скорее всего) будет ооочень неправильная архитектура. Или используй интерфейсы.