私のコードに何か問題がありますか?私はできるだけシンプルに作ってきたし、Googleのすべてを検索しようとしたが、まだ考えていない。単純な継承メソッドを呼び出すときに「式にはクラス型が必要です」
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class Animal {
public:
Animal();
Animal(string _sound) :
sound(_sound) {}
virtual ~Animal();
void give_sound() {
cout << sound << " ";
}
protected:
string sound;
};
class Dog : protected Animal {
public:
Dog(): Animal("woof") {}
};
int main() {
Dog doggy();
doggy.give_sound(); // expression must have class type
return 0;
}
新しくユニバーサルなイニシャライザの構文を使用してください: 'Dog doggy {};' –
すべてはここ[http://coliru.stacked-crooked .com/a/0be113f40bce9bd6)。 –