作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
代码如下:
class Vec
{
public:
Vec() {len=0;};
Vec(int n);
~Vec();
void setValue(int idx,int v);
void printVec() const;
private:
class Items
{
friend class Vec;
Items(){value = 0;};
Items(int v){value = v;};
int value;
};
int len;
Items *vec;
};
/*Declare the member functions & constructor & destructor*/
int main()
{
Vec vector(5);
vector.printVec();
for(int i=0;i<5;i++){
vector.setValue(i,i);
vector.printVec();
}
Items n;
return 0;
}
当我尝试使用 Items n;
时,出现错误:“Items undeclared”。
但是当使用 vector.Items n;
时,仍然报错“invalid use of class Vec::Items
”
如何让编译器识别声明?
最佳答案
I wanna make it can be declared.
您需要使 Items
成为 Vec
类的公共(public)嵌套类或内部类,然后使用作用域解析运算符(即 Vec: :Items
) 创建该对象类型的实例时。否则,您只能在 Vec
的方法内创建 Vec::Items
对象的实例,因为它将是 Vec
的私有(private)内部类>,而不是可公开访问的类类型。
关于c++ - 将私有(private)内部类纳入主要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11698296/
我正在开发 Kext,它应该可以访问 struct proc->p_pid field 。问题是该结构仅在 XNU 源中定义,所以我面临 incomplete definition of type '
下面是 ES2015 类中的一个方法。 它不能是箭头函数,因为它是异步函数。 但由于它不是箭头函数,因此“this”不在范围内,因此我无法执行 setstate 之类的操作。 有人可以建议我如何将其纳
我想使用 Bootstrap 创建 NC 主题。 我通过 Visual Studio 2013 中的 Nugets 包管理器安装了 Bootstrap。然后我添加: Html.AppendScript
我是一名优秀的程序员,十分优秀!