程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> C++面向對象編程入門:構造函數與析構函數

C++面向對象編程入門:構造函數與析構函數

編輯:vc教程

請注意,這一節內容是c++的重點,要特別注意!

我們先說一下什麼是構造函數。

上一個教程我們簡單說了關於類的一些基本內容,對於類對象成員的初始化我們始終是建立成員函數然後手工調用該函數對成員進行賦值的,那麼在c++中對於類來說有沒有更方便的方式能夠在對象創建的時候就自動初始化成員變量呢,這一點對操作保護成員是至關重要的,答案是肯定的。關於c++類成員的初始化,有專門的構造函數來進行自動操作而無需要手工調用,在正式講解之前先看看c++對構造函數的一個基本定義。

1.C++規定,每個類必須有默認的構造函數,沒有構造函數就不能創建對象。

2.若沒有提供任何構造函數,那麼c++提供自動提供一個默認的構造函數,該默認構造函數是一個沒有參數的構造函數,它僅僅負責創建對象而不做任何賦值操作。

3.只要類中提供了任意一個構造函數,那麼c++就不在自動提供默認構造函數。

4.類對象的定義和變量的定義類似,使用默認構造函數創建對象的時候,如果創建的是靜態或者是全局對象,則對象的位模式全部為0,否則將會是隨即的。

我們來看下面的代碼:

#include <iostream>
using namespace std;
class Student
{
public:
Student()//無參數構造函數
{
number = 1;
score = 100;
}
void show();

protected:
int number;
int score;

};
void Student::show()
{
cout<<number<<endl<<score<<endl;
}
void main()
{
Student a;
a.show();
cin.get();
}

在類中的定義的和類名相同,並且沒有任何返回類型的Student()就是構造函數,這是一個無參數的構造函數,他在對象創建的時候自動調用,如果去掉Student()函數體內的代碼那麼它和c++的默認提供的構造函數等價的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved