加载中……
C++构造函数与析构函数

示例代码

#include <iostream>
using namespace std;

class ClassTest
{
public:
    ClassTest( int s ): elem{ new int[s] }, size{ s } { }
    ClassTest( ): elem{ new int[1] }, size{ 1 } { }
    ~ClassTest() 
    { 
        cout << "delete Object\n";
        delete[] elem; 
    }
private:
    int *elem;
    int size;
};


int main()
{
    ClassTest A( 6 );
    ClassTest B;
    return 0;
}

构造函数

与类同名的函数,在类进行定义是会自动执行,可使用成员初始化器列表初始化成员,例如:

ClassTest( int s ):elem{ new int[s] },size{ s } { }

表示为ClassTest类的elem指针申请s个int大小的空间,并将size值置为s。

定义ClassTest类的变量A时使用:

ClassTest A(6);

构造函数可定义多个,编译器将会根据参数个数和类型进行初始化,如:

ClassTest( int s ):elem{ new int[s] },size{ s } { }
ClassTest(  ):elem{ new int },size{ 1 } { }

可使用下面的代码表示默认申请一个int大小的空间给elem,并设置size为1。

ClassTest A( );

析构函数

与构造函数对应,~后接类名的函数叫析构函数。析构函数在对象消亡时会自动调用,用于对对象申请空间的释放。例如:

~ClassTest() 
{ 
    cout << "delete Object\n";
    delete[] elem; 
}

当程序结束时会自动将A和B申请的空间释放。

版权声明: 若无特殊说明,文章均为原创,版权归本文作者所有,转载请保留出处和此说明!
本文链接: C++构造函数与析构函数
本文作者: Jan.
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇