//文件名ss.h
1 #pragma once 2 class ss 3 { 4 private: 5 char*p;//利用指针来为p申请对内存 6 float height; 7 int age=5; 8 char sex; 9 public: 10 ss(); 11 void eat(); 12 ~ss(); 13 };
//文件名ss.cpp
1 #include "ss.h" 2 #include<iostream> 3 using std::cout; 4 using std::endl;//利用命名空间的第三种方式来调用头文件里命名空间std中的方法 5 ss::ss() 6 { 7 p = new char[5]; 8 cout << "构造函数" << endl; 9 } 10 11 12 ss::~ss() 13 { 14 if (p != nullptr){ 15 delete[] p; 16 p = nullptr; 17 cout << "析构函数"<<endl; 18 } 19 }
1 #include<iostream> 2 #include"ss.h" 3 using namespace std; 4 5 int main(){ 6 { ss a; 7 a.eat();//调用类ss中a方法中的eat 8 }//将析构函数显示出来利用{}作为作用域代码结束后调用 9 cin.get(); 10 return 0; 11 } 12 void ss::eat(){//类成员函数类外定义方法 13 cout << age << endl;//输出类ss中age的值 14 }
构造和析构有很多用法 构造主要作用是初始化形参列表 析构主要作用是回收对象申请内存 防止内存泄漏