64,651
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class Pet {
string pname;
public:
Pet(const string& name) : pname(name) {}
virtual string name() const { return pname; }
virtual string description() const {
return "This is " + pname;
}
};
class Dog : public Pet {
string favoriteActivity;
public:
Dog(const string& name, const string& activity)
: Pet(name), favoriteActivity(activity) {}
string description() const {
return Pet::name() + " likes to " +
favoriteActivity;
}
};
void describe(Pet &p) {
cout << p.description() << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
Pet p("Alfred");
Dog d("Fluffy", "sleep");
describe(p);
describe(d);
return 0;
}
const int *a.
int * const a;
Pet(const string& name) : pname(name) {} //这个表示变量name不可以修改
virtual string name() const { return pname; } //这个表示这个函数不会修改成员变量
#include <iostream>
#include <string>
using namespace std;
class Pet {
string pname;
public:
Pet(const string& name) : pname(name) {} //此const的意思是传入的变量不能有更改
virtual string name() const { return pname; } //此const的意思是,该函数为只读,也就是数据成员不能有所改变
virtual string description() const { //同上
return "This is " + pname;
}
};
class Dog : public Pet {
string favoriteActivity;
public:
Dog(const string& name, const string& activity)
: Pet(name), favoriteActivity(activity) {}
string description() const {
return Pet::name() + " likes to " +
favoriteActivity;
}
};
void describe(Pet &p) {
cout < < p.description() < < endl;
}
int main() {
Pet p("Alfred");
Dog d("Fluffy", "sleep");
describe(p);
describe(d);
}