1. 程式人生 > >建構函式與指標

建構函式與指標

1、如果遇到指標問題的話必須顯示定義預設建構函式、解構函式、賦值運算子函式、拷貝建構函式。
2、以陣列形式出現:

#include <iostream>
#include <cstring>
using namespace std;
class Point
{
private:
    int age;
    char name[20];//name[20]為指標常量,不能賦值;
public:
    Point(int age_,char name_[]):age(age_)
    {
        strcpy(name,name_);
    }
    Point(const
Point& p):age(p.age) { strcpy(name,p.name); } void show() { cout<<age<<" "<<name<<endl; } }; int main() { Point s1(30,"zhangsan"),s2(s1); s1.show(); s2.show(); }

3、以指標形式出現

#include <iostream>
#include <cstring>
using namespace std; class Point { private: int age; char *name;//name為指標變數; public: Point(int age_,char *name_):age(age_) { name=new char[strlen(name_)+1]; strcpy(name,name_); } Point(const Point& p):age(p.age) { name=new char[strlen(p.name)+1];//這一行前往不要少;
strcpy(name,p.name); } ~Point(){delete []name;}//必須要釋放函式中動態申請的記憶體; void show() { cout<<age<<" "<<name<<endl; } }; int main() { Point s1(30,"zhangsan"),s2(s1); s1.show(); s2.show(); }

3與4的執行結果均為
這裡寫圖片描述

4、看好兩者之間的區別,注意如何給他們賦值等等。