欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类和对象小练习

程序员文章站 2022-03-06 11:06:27
...

项目树

类和对象小练习

代码部分

main.cpp

#include <iostream>
#include <Landowner_v4.h>//如果要使用类,那么必须包含类的头文件
using namespace std;

int main()
{//构造函数的重载规则与普通函数相同
    Landowner_v4 owner1;
    cout << "***************************\n";
    Landowner_v4 owner2("改改","黑马");//记得加双引号哦
    owner2.show_info();
    cout << "***************************\n";
    Landowner_v4 owner3(25);
    //Landowner_v4 owner3 = 25;//如果构造函数中,有且仅有一个参数,则可以写成Landowner_v4 owner3 = 25;
    cout << "***************************\n";
    //使用指针的方法访问成员变量
    Landowner_v4* owner4; //定义指向结构体类型Landowner_v4的数据的指针变量owner4
    owner4 = new Landowner_v4("红红","牛掰");//给指针分配内存的同时调用构造函数
            //用new运算符开辟一个存放Landowner_v4型数据的空间
    owner4 -> show_info(); //向结构体变量的方法
    delete owner4; //撤销该空间
    return 0;
}

C++中new的用法

Landowner_v4.h

#ifndef LANDOWNER_V4_H
#define LANDOWNER_V4_H
#include <iostream>
#include <string>
using namespace std;

class Landowner_v4
{
    public:
        Landowner_v4();
        Landowner_v4(string, string);
        Landowner_v4(int);
        void show_info();
        virtual ~Landowner_v4();

        string GetName() { return m_Name; }
        void SetName(string val) { m_Name = val; }
        string GetDesc() { return m_Desc; }
        void SetDesc(string val) { m_Desc = val; }
        int GetAge() { return m_Age; }
        void SetAge(int val) { m_Age = val; }

    protected:

    private:
        string m_Name;
        string m_Desc;
        int m_Age;
};
#endif // LANDOWNER_V4_H

Landowner_v4.cpp

#include "Landowner_v4.h"
#include <iostream>
#include <string>
using namespace std;

Landowner_v4::Landowner_v4()
{
    //ctor
    cout << "调用的是默认构造(即无参构造)Landowner_v4()\n" ;

}

Landowner_v4::Landowner_v4(string name, string desc)
{
    cout << "调用的是带参构造函数Landowner_v4(string name, string desc)\n" ;
    m_Name = name;//等价写法SetName(name);
    m_Desc = desc;
}
Landowner_v4::Landowner_v4(int age)
{
   cout << "调用的是带参构造函数Landowner_v4(int age)\n" ;
   SetAge(age); //等价写法m_Age = age;
}

void Landowner_v4::show_info()
{
    cout << m_Desc << m_Name << endl;
}

Landowner_v4::~Landowner_v4()
{
    //dtor
}

运行结果

类和对象小练习