2013-12-10 20 views
-5

當我運行以下C++代碼,得到了喜歡 - 類型「陣列」編譯錯誤可能不會在管線這裏定義17.錯誤:類型「陣列」可能不被這裏所定義的C++代碼

#include<iostream.h> 
class array 
{ 
char a[10][10]; 
public: 
array() 
{ 
    a[10][10]='h'; 
} 
void print() 
{ 
    cout<<(a[0]==*a)&&(*a==0[a]);`` 
} 
} 
main() 
{ 
array ob; 
ob.print(); 

} 

我盡力解決這個錯誤,但沒有成功,請提出解決方案。提前致謝。

+0

那是'\'\''在'cout'線在你的實際代碼的最後,還是會這樣想的SO格式的代碼? – jwueller

+0

在'array'構造函數中,您正在訪問數組。數組索引基於零,意味着它們從0到(容量-1)。 –

+5

請,做一個有利於自己和閱讀[像樣的書(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list?rq=1),而不是一些半 - 烘焙教程。這很糟糕。 –

回答

7

您在班級定義之後忘記了尾隨;,並將int聲明爲main的返回類型。

另外,要包含的正確標題是<iostream>而不是<iostream.h>

+0

應該指出,當使用正確的''頭部時,一個普通的'cout'不會起作用,因爲它在'std'下是命名空間。 – jwueller

+0

@elusive啊,那也:) –

+2

和'a [10] [10] ='h';'超出界限 – Praetorian

相關問題