Тестирование некоторых классов в C ++

Я просто хочу протестировать некоторые классы в программе на C ++, но у меня есть ошибка «Ожидаемое выражение» в Xcode.

На самом деле вот код, который я написал:

#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;

}

Я действительно не знаю, откуда появилась эта ошибка.

У кого-нибудь есть идея?

-1

Решение

Я уверен, что используются одинарные кавычки ’\n’, Пожалуйста, измените их на '\n',

4

Другие решения

заменить все () за ("):

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; }
1

По вопросам рекламы [email protected]