VS2015建立一個完整的c++工程:頭文件.h 源文件.cpp,自動生成類


https://blog.csdn.net/weixin_40539125/article/details/81430801

 

 

打開VS2015 ,新建VS win32工程,前面步驟很簡單,不再闡述

下面直接開始:

新建一個VC++ win32的程序,

在源文件加下添加.cpp文件,一般放main函數

  1.  
    #include <iostream>
  2.  
    #include <locale>
  3.  
    #include "human.h"
  4.  
    using namespace std;
  5.  
     
  6.  
     
  7.  
    int main()
  8.  
  9.  
    Human Tom;
  10.  
    Tom.A( 160);
  11.  
    people zhangsan;
  12.  
    zhangsan.B( 160);
  13.  
     
  14.  
     
  15.  
    //cout<<Tom.printf();
  16.  
    }

 

在頭文件中添加.h文件(human.h),一般是定義的類   

  1.  
    class Human
  2.  
    {
  3.  
    public:
  4.  
    void A(int w);
  5.  
    private:
  6.  
    int *i;
  7.  
    };
  8.  
     
  9.  
     
  10.  
    class people
  11.  
    {
  12.  
    public:
  13.  
    void B(int j);
  14.  
    int num;
  15.  
    private:
  16.  
    int numa;
  17.  
    };

頭文件中的.cpp文件放類的構造函數

  1.  
    #include "human.cpp"
  2.  
     
  3.  
     
  4.  
     
  5.  
    #include <iostream>
  6.  
    #include "human.h"
  7.  
    using namespace std;
  8.  
    void Human::A(int w)
  9.  
    {
  10.  
    cout << w << endl;
  11.  
    }
  12.  
    void people::B(int w)
  13.  
    {
  14.  
    w -= 100;
  15.  
    cout << w << endl;
  16.  
    }
  17.  
     

然后在源文件下的main函數的要加上類的聲明頭文件,頭文件.cpp也要添加類聲明的頭文件

i

 

注意:頭文件中定義的類,在與之同名的c文件中要做聲明,類的構造函數和析構函數要么顯示定義,也要顯示的聲明,哪怕這些函數里面沒有執行的內容,空的也要寫出來,否則會編譯通不過,要么類的構造函數和析構函數都不寫,類默認產生不執行任何程序的構造函數和析構函數

反正一條:對於類里面的析構函數和構造函數只要定義了,必須要聲明,函數為空也可以

 

下面補充一下在VS里面多文件系統(即有多個頭文件和cpp文件),使用VS來自動生成類,

1、項目右擊->添加->類

輸入類名后,h文件和cpp文件自動填充好,而且生成的類的構造函數、析構函數、包含頭文件全都有了

如下圖:

生成的代碼:

h文件

  1.  
    #pragma once
  2.  
     
  3.  
     
  4.  
    class Clock
  5.  
     
  6.  
    {
  7.  
     
  8.  
    public:
  9.  
     
  10.  
    Clock();
  11.  
     
  12.  
    ~Clock();
  13.  
     
  14.  
    };

cpp文件

  1.  
    #include "Clock.h"
  2.  
     
  3.  
     
  4.  
    Clock::Clock()
  5.  
     
  6.  
    {
  7.  
     
  8.  
    }
  9.  
     
  10.  
     
  11.  
    Clock::~Clock()
  12.  
     
  13.  
    {
  14.  
     
  15.  
    }
  16.  
     

 

上面都是空的,下面在里面填上我們的函數

2、在類里面放上我們的函數

h文件添加函數后

  1.  
     
  2.  
     
  3.  
    #pragma once
  4.  
     
  5.  
    #include <iostream>
  6.  
     
  7.  
    using namespace std;
  8.  
     
  9.  
     
  10.  
    class Clock
  11.  
     
  12.  
    {
  13.  
     
  14.  
    public:
  15.  
     
  16.  
    Clock();
  17.  
     
  18.  
    void SetTime(int NewH, int NewM, int NewS); //三個形參均具有函數原型作用域
  19.  
     
  20.  
    void ShowTime();
  21.  
     
  22.  
    ~Clock();
  23.  
     
  24.  
    private:
  25.  
     
  26.  
    int Hour, Minute, Second;
  27.  
     
  28.  
    };

cpp文件添加函數后:

  1.  
    #include "Clock.h"
  2.  
     
  3.  
    Clock::Clock()
  4.  
     
  5.  
    {
  6.  
     
  7.  
    Hour = 0;
  8.  
     
  9.  
    Minute = 0;
  10.  
     
  11.  
    Second = 0;
  12.  
     
  13.  
     
  14.  
    }
  15.  
     
  16.  
    void Clock::SetTime(int NewH, int NewM, int NewS)
  17.  
     
  18.  
    {
  19.  
     
  20.  
    Hour = NewH;
  21.  
     
  22.  
    Minute = NewM;
  23.  
     
  24.  
    Second = NewS;
  25.  
     
  26.  
    }
  27.  
     
  28.  
    void Clock::ShowTime()
  29.  
     
  30.  
    {
  31.  
     
  32.  
    cout << Hour << ":" << Minute << ":" << Second << endl;
  33.  
     
  34.  
    }
  35.  
     
  36.  
     
  37.  
    Clock::~Clock()
  38.  
     
  39.  
    {
  40.  
     
  41.  
    }
  42.  
     
  43.  
     
  44.  
     

 

3、在main里面添加我們的類包含頭文件

#include "Clock.h" //頭文件
 
  1.  
     
  2.  
    Clock g_Clock;
  3.  
     
  4.  
    int main() //主函數
  5.  
     
  6.  
    {
  7.  
     
  8.  
    cout << "文件作用域的時鍾類對象:" << endl;
  9.  
     
  10.  
    //引用具有文件作用域的對象:
  11.  
     
  12.  
    g_Clock.ShowTime();
  13.  
     
  14.  
    g_Clock.SetTime( 10, 20, 30);
  15.  
     
  16.  
     
  17.  
    Clock myClock(g_Clock); //聲明具有塊作用域的對象myClock,並通過默認拷貝構造函數用g_Clock初始化myClock
  18.  
     
  19.  
    cout << "塊作用域的時鍾類對象:" << endl;
  20.  
     
  21.  
    myClock.ShowTime(); //引用具有塊作用域的對象
  22.  
     
  23.  
    return 0;
  24.  
     
  25.  
    }

​​​​

運行結果:

over!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM