我不明白爲什麼這個簡單的代碼不會編譯!我所要做的就是創建一個指向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