关于C++外部类访问内部类的一个问题
class A{public:
Inner* foo() {
return new Inner();
}
private:
class Inner {
public:
friend calss A;
void bar() {
cout << "Inner::bar()" << endl;
}
};
};
int main()
{
A a;
a.foo();
return 0;
}
1. 为什么这里不能用Inner或者Inner*作为返回值呢?
2. 为什么这里的友元类声明是无效的呢? #include <iostream>
using std::cout, std::endl;
class A{
private:
class Inner {
public:
//friend calss A; // calss ???
friend class A;
void bar() {
cout << "Inner::bar()" << endl;
}
};
public:
Inner* foo() {
return new Inner();
}
};
int main()
{
A a;
//a.foo();
delete a.foo();
return 0;
}
人造人 发表于 2022-3-2 21:42
那个class是复制的时候不小心删东西打错了,本意是想问这样写了友元类,为什么无效呢
原来是因为没有前向声明吗{:10_266:} 御笔剑客 发表于 2022-3-2 22:14
那个class是复制的时候不小心删东西打错了,本意是想问这样写了友元类,为什么无效呢
原来是因为没有前 ...
没看懂
页:
[1]