C++ 中【没有合适的默认构造函数可用】和【类块放在main后面】的疑惑。
#include "stdafx.h"using namespace std;/* --- --- --- --- --- --- --- 武器类 --- --- --- --- --- --- */class Weapon{private: string name; int power;public: void Show(); //Weapon(){}; Weapon(string name,int power);};Weapon::Weapon(string name, int power){ this->name = name; this->power = power;};void Weapon::Show(){ cout<<"武器名:"<<this->name<<"威力值:"<<this->power<<endl;};/* --- --- --- --- --- --- --- 角色类 --- --- --- --- --- --- */class Actor{private: string name; bool gender; Weapon weapon;public: Actor(string name, bool gender); void Say(); void Say(string message); void SetWeapon(Weapon &weapon) { this->weapon = weapon; }};Actor::Actor(string name, bool gender){ this->gender = gender; this->name = name;}void Actor::Say(){ cout<<"我乃"<<this->name<<"是也..."<<endl;};void Actor::Say(string message){ cout<<this->name<<":"<<message<<endl;};/* --- --- --- --- --- --- --- MAIN --- --- --- --- --- --- */int main(){ Weapon* weapon = new Weapon("九环锡杖",20); Actor* tang = new Actor("唐三藏", 1); tang->SetWeapon(*weapon); tang->Say(); tang->Say("Only you...伴我去西经"); weapon->Show(); cin.get(); return 0;};/* --- --- --- --- --- --- --- 武器类 --- --- --- --- --- --- */class Weapon{private: string name; int power;public: void Show(); Weapon(){}; Weapon(string name,int power);};/* --- --- --- --- --- --- --- 角色类 --- --- --- --- --- --- */class Actor{private: string name; bool gender; Weapon weapon;public: Actor(string name, bool gender); void Say(); void Say(string message); void SetWeapon(Weapon &weapon) { this->weapon = weapon; }};/* --- --- --- --- --- --- --- MAIN --- --- --- --- --- --- */int main(){ Weapon* weapon = new Weapon("九环锡杖",20); Actor* tang = new Actor("唐三藏", 1); tang->SetWeapon(*weapon); tang->Say(); tang->Say("Only you...伴我去西经"); weapon->Show(); cin.get(); return 0;};Weapon::Weapon(string name, int power){ this->name = name; this->power = power;};void Weapon::Show(){ cout<<"武器名:"<<this->name<<"威力值:"<<this->power<<endl;};Actor::Actor(string name, bool gender){ this->gender = gender; this->name = name;}void Actor::Say(){ cout<<"我乃"<<this->name<<"是也..."<<endl;};void Actor::Say(string message){ cout<<this->name<<":"<<message<<endl;};
[解决办法]
2楼都说了。或者你什么也不定义,全用set
[解决办法]
mark,学习了
[解决办法]