我不明白为什么这个简单的代码不会编译!我所要做的就是创建一个指向Set类型对象的指针数组。为什么程序不能编译?
int main()
{
size_t n = 0;
size_t ops = 0;
cin >> n >> ops;
Set ** arr = new Set*[n+1];
for (size_t i = 1; i< n+1; ++i) {
Set s = new Set(i);
arr[i] = &s;
}
在上面,我有我的设置类型定义:
struct Set
{
Set (size_t x) {
this->p = x;
this->rank = 0;
this->index = x;
}
size_t index;
size_t p;
size_t rank;
};
但是,当G ++开不接受这个代码是正确的,这里就是它的说法:
dss.cpp: In function ‘int main()’:
dss.cpp:57:20: error: invalid conversion from ‘Set*’ to ‘size_t {aka long unsigned int}’ [-fpermissive]
Set s = new Set(i);
^
dss.cpp:17:2: error: initializing argument 1 of ‘Set::Set(size_t)’ [-fpermissive]
Set (size_t x) {
^
这是什么说话关于?什么收敛? Soorry,但我看不到任何转换!我究竟做错了什么??
循环你到C++后另一种语言?看起来你正在用C++进行ruby-ish的事情。 – 2014-10-11 18:03:36
@JohnDibling我不知道红宝石,但我编写了一些关于PHP和javaScript – dKab 2014-10-11 19:12:32