//构造函数重载
#include <iostream>
using namespace std;
class stu {
private:
char *name;
int age;
float socre;
public:
stu();
stu(char* a, int b, float c);
void set(char* a, int b, float c);
void print();
};
void stu::set(char* a, int b, float c)
{
name = a;
age = b;
socre = c;
}
stu::stu(char* a, int b, float c)
{
name = a;
age = b;
socre = c;
}
stu::stu()
{
name = NULL;
age = 0;
socre = 0;
}
void stu::print()
{
cout<<name<<","<<age<<"'"<<socre<<endl;
}
int main()
{
stu d1("tom", 20, 99.1); //构造函数的运用 是小括号(注意)
d1.print();
stu d2; //不给d2的参数赋值,运行是可以的
// stu d2(); //栈上时不可以加()的,有()编译不过去 堆上可以
// d2.print();
stu* d3 = new stu();
d3->set("la", 22, 98.2);
d3->print();
stu* d4 = new stu(); //堆上时可以加()的,有()能编译过去 栈上不可以
d4->print();
stu* d5 = new stu("ok", 23, 97.2); //构造函数可以直接与结构体指针用,也可直接与结构体用
d5->print();
}
#include <iostream>
using namespace std;
class stu {
private:
char *name;
int age;
float socre;
public:
stu();
stu(char* a, int b, float c);
void set(char* a, int b, float c);
void print();
};
void stu::set(char* a, int b, float c)
{
name = a;
age = b;
socre = c;
}
stu::stu(char* a, int b, float c)
{
name = a;
age = b;
socre = c;
}
stu::stu()
{
name = NULL;
age = 0;
socre = 0;
}
void stu::print()
{
cout<<name<<","<<age<<"'"<<socre<<endl;
}
int main()
{
stu d1("tom", 20, 99.1); //构造函数的运用 是小括号(注意)
d1.print();
stu d2; //不给d2的参数赋值,运行是可以的
// stu d2(); //栈上时不可以加()的,有()编译不过去 堆上可以
// d2.print();
stu* d3 = new stu();
d3->set("la", 22, 98.2);
d3->print();
stu* d4 = new stu(); //堆上时可以加()的,有()能编译过去 栈上不可以
d4->print();
stu* d5 = new stu("ok", 23, 97.2); //构造函数可以直接与结构体指针用,也可直接与结构体用
d5->print();
}