MS Visual Studio 15を使用してクラスの継承を理解するために、次のC++コードを実行しようとしています。コードをビルドして実行した後、MS VSが機能しなくなったというメッセージが表示されます。誰かが私が間違っていることを理解するのを助けることができれば、本当に感謝しています。あなたがそのようprintf()
でstd::string
を使用することはできませんC++クラスの継承を使用するための助けが必要
#include<cstdio>
#include<string>
#include<conio.h>
using namespace std;
// BASE CLASS
class Animal {
private:
string _name;
string _type;
string _sound;
Animal() {};
protected:
Animal(const string &n, const string &t, const string &s) :_name(n), _type(t), _sound(s) {};
public:
void speak() const;
};
void Animal::speak() const {
printf("%s, the %s says %s.\n", _name, _type, _sound);
}
// DERIVED CLASSES
class Dog :public Animal {
private:
int walked;
public:
Dog(const string &n) :Animal(n, "dog", "woof"), walked(0) {};
int walk() { return ++walked; }
};
int main(int argc, char ** argv) {
Dog d("Jimmy");
d.speak();
printf("The dog has been walked %d time(s) today.\n", d.walk());
return 0;
_getch();
}
'私が間違っていることを理解してくださいあなたのVS2015にダイヤモンドの問題があります –
[コンパイル時に警告](http://coliru.stacked-crooked.com/a/b01383841d47037d)に従ってください! –