靜態成員函數

來源:互聯網
上載者:User

#include <iostream>
using namespace std;

class Test
{
public:
 //靜態成員函數是類的成員函數,該函數不屬於該類申請的任何一個對象,而是所有該類成員共同共有的一個函數。
 static Test* setup()
 {
  return new Test;
 }
private:
 //私人建構函式和解構函式不能通過直接執行個體化來構造,因為外部無法訪問類的私人成員,而要在沒有執行個體化對象的情況下通過調用類的
 //公有成員函數,只能是公有靜態成員函數,所以setup必須是static靜態,而在靜態成員函數中建立一個類的對象是可以的,因為類的成員
 //可以訪問類的私人成員。
    Test(void){};
 ~Test(void){};
}

int main()
{
 //因為setup()函數是靜態成員函數,是屬於類的成員函數,不屬於某一個類的對象,所以可以用Test名直接調用
 Test* t = Test.setup();
 //同時對於每個對象也可以調用這個成員函數,即這個函數是所有類對象共有的,在記憶體中只有一個地址,第一次申明時分配空間
 //以後對於每個對象不再分配記憶體,直接調用
 //如果setup不是靜態成員函數,則只能通過每個對象進行調用
 t->setup();

 return 0;
}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.