/
githubmirror
/
CPlusPlusThings
Обзор
Документация
Войти
/
githubmirror
/
CPlusPlusThings
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
practical_exercises/10_day_practice/day3/predeclare.cpp
41 строка
953 B
zhangxing
support bazel complie this project and format code.
30 мар 2024, 17:00
30 мар 2024, 17:00
3c8a3f2
Код
Авторство
О чём код?
/* 类前向声明.cpp */ /* 使用前向引用声明虽然可以解决一些问题,但它并不是万能的。需要注意的是, 尽管使用了前向引用声明,但是在提供一个完整的类声明之前,不能声明该类的对象, 也不能在内联成员函数中使用该类的对象。请看下面的程序段: */ //第一种 #include <iostream> class Fred; //前向引用声明 class Barney { Fred x; //错误:类Fred的声明尚不完善 }; class Fred { Barney y; }; //第二种 class Fred; //前向引用声明 class Barney { public: void method() { x->yabbaDabbaDo(); //错误:Fred类的对象在定义之前被使用 } private: Fred *x; //正确,经过前向引用声明,可以声明Fred类的对象指针 }; class Fred { public: void yabbaDabbaDo(); private: Barney *y; }; /* 总结:当使用前向引用声明时,只能使用被声明的符号,而不能涉及类的任何细节。 */