柚子快报激活码778899分享:4月25日 C++day3

http://yzkb.51969.com/

#include

using namespace std;

class Person

{

const string name;

int age;

char sex;

public:

Person():name("lisi")

{cout << "Person无参构造" << endl;}

Person(string name,int age,char sex):name(name),age(age),sex(sex)

{cout << "Person有参构造" << endl;}

void show()

{

cout <<"person的show:"<< name << age << sex <

}

Person(const Person &other):name(other.name)

{

this->age = other.age;

this->sex=other.sex;

cout << "Person的拷贝构造函数" << endl;

}

Person &operator=(const Person &other)

{

if(&other!=this)

{

string name=other.name;

this->age=other.age;

this->sex=other.sex;

cout << "Person的拷贝赋值函数" << endl;

}

return *this;

}

};

class Stu

{

Person p1;

double *pd;

public:

Stu():pd(new double)

{cout << "Stu的无参构造" << endl;}

Stu(string name,int age,char sex,double score):p1(name,age,sex),pd(new double(score))

{cout << "Stu有参构造" << endl;}

void show()

{

p1.show();

cout << *pd <

}

Stu(const Stu &other):p1(other.p1)

{

this->pd=other.pd;

}

Stu &operator=(const Stu &other)

{

if(&other!=this)

{

this->p1=other.p1;

*(this->pd)=*(other.pd);

cout << "Stu的拷贝赋值函数" << endl;

}

return *this;

}

};

int main()

{

Person p2("wangwu",20,'n');

p2.show();

Person p3=p2;

p3.show();

Person p4;

p4=p2;

p4.show();

Stu s2("zhangsan",20,'n',99.2);

s2.show();

Stu s3=s2;

s3.show();

Stu s4;

s4=s2;

s4.show();

return 0;

}

#include

#include

using namespace std;

using namespace std;

class myString

{

private:

char *str; //变化c风格的字符串

int size; //记录字符串的实际长度

public:

//无参构造

myString() : str(new char), size(0)

{

str[0] = '\0';

cout<<"无参构造"<

}

//有参构造

myString(const char* s)

{

size = strlen(s);

str = new char[size + 1];

strcpy(str, s);

cout<<"有参构造"<

}

//拷贝构造

myString(const myString &other)

{

size = other.size;

str = new char[size + 1];

strcpy(str, other.str);

cout<<"拷贝构造函数"<

}

//拷贝赋值函数

myString& operator=(const myString &other)

{

if (this != &other) {

size = other.size;

str = new char[size + 1];

strcpy(str, other.str);

cout<<"拷贝赋值函数"<

}

return *this;

}

//析构函数

~myString()

{

delete[] str;

cout<<"析构"<

}

//判空函数

void empty()

{

if(size == 0)

{cout<<"空"<

else

{cout<<"非空"<

}

//size函数

void mysize()

{

cout<<"size = "<

}

//c_str函数

char* c_str()

{

return str;

}

//at函数

char &at(int pos)

{

if (pos < 0 || pos >= size) {

cout<<"位置不合法"<

}

return str[pos];

}

};

int main()

{

myString s1("hello");

myString s2 = s1;

myString s3;

cout<

cout<

cout<

cout<

s2.empty();

s2.mysize();

return 0;

}

柚子快报激活码778899分享:4月25日 C++day3

http://yzkb.51969.com/

文章链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。