2013-01-09 28 views
-1

我只想在C++程序中測試一些類,但是我在Xcode中有一個「Expected expression」錯誤。在C++中測試一些類

其實這裏是我寫的代碼:

#include <iostream> 


using namespace std; 


class A { 
    public : 
    virtual void M1() { cout << " A::M1"; } 
    void M2() { cout << " A::M2"; } 
    virtual void M3() { cout << " A::M3"; } 
}; 


class B : public A { 
    public : 
    void M1() { cout << " B::M1"; } 
    virtual void M2() { cout << " B::M2"; } 
    void M3() { cout << " B::M3"; } 
}; 


class C : public B { 
    public : 
    void M1() { cout << " C::M1"; } 
    void M2() { cout << " C::M2"; } 
    void M3() { cout << " C::M3"; } 
}; 


class D { 
    public : 
    D (A v, A& r, B& s) : va (v), ra (r), rb (s) { } 
    void M1() { cout << " D::M1 -->"; va.M1(); ra.M1(); rb.M1(); cout << ’\n’; } 
    void M2() { cout << " D::M2 -->"; va.M2(); ra.M2(); rb.M2(); cout << ’\n’; } 
    void M3() { cout << " D::M3 -->"; va.M3(); ra.M3(); rb.M3(); cout << ’\n’; } 
    protected : 
    A va; A& ra; B& rb; 
}; 


int main(int argc, const char * argv[]) 
{ 

A a; B b; C c; D d1 (a, a, b); D d2 (a, b, c); D d3 (a, c, b); D d4 (b, c, c); 
cout << "avec d1 :\n"; d1.M1(); d1.M2(); d1.M3(); 
cout << "avec d2 :\n"; d2.M1(); d2.M2(); d2.M3(); 
cout << "avec d3 :\n"; d3.M1(); d3.M2(); d3.M3(); 
cout << "avec d4 :\n"; d4.M1(); d4.M2(); d4.M3(); 

return 0; 

}

我真的不知道從哪裏傳來的錯誤。

任何人有想法?

+0

當然錯誤信息帶有一個行號。 –

+0

哪一行發生錯誤? – Roberto

+0

在D類中,3個虛線(M1,M2和M3) – hacks4life

回答

4

我很確定這是使用的單引號’\n’。請將它們更改爲'\n'

+0

其實我會用「\ n」 – stevejpurves

+0

是的,我剛剛測試過。用「\ n」做它 – Roberto

+1

@stevejpurves:你爲什麼要從'char'改爲char數組? –

1

替換所有()爲("):

void M1() { cout << " D::M1 -->"; va.M1(); ra.M1(); rb.M1(); cout << ’\n’; } 
void M2() { cout << " D::M2 -->"; va.M2(); ra.M2(); rb.M2(); cout << ’\n’; } 
void M3() { cout << " D::M3 -->"; va.M3(); ra.M3(); rb.M3(); cout << ’\n’; } 

變爲:

void M1() { cout << " D::M1 -->"; va.M1(); ra.M1(); rb.M1(); cout << "\n"; } 
void M2() { cout << " D::M2 -->"; va.M2(); ra.M2(); rb.M2(); cout << "\n"; } 
void M3() { cout << " D::M3 -->"; va.M3(); ra.M3(); rb.M3(); cout << "\n"; } 

,或者也可以考慮使用ENDL如果它被緩衝,其將刷新流:

void M1() { cout << " D::M1 -->"; va.M1(); ra.M1(); rb.M1(); cout << endl; } 
void M2() { cout << " D::M2 -->"; va.M2(); ra.M2(); rb.M2(); cout << endl; } 
void M3() { cout << " D::M3 -->"; va.M3(); ra.M3(); rb.M3(); cout << endl; } 
+0

它工作。謝謝 – hacks4life