1. 程式人生 > >VS2015建立一個完整的c++工程:標頭檔案.h 原始檔.cpp,自動生成類

VS2015建立一個完整的c++工程:標頭檔案.h 原始檔.cpp,自動生成類

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

下面直接開始:

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

在原始檔加下新增.cpp檔案,一般放main函式

#include <iostream>
#include <locale>
#include "human.h"
using namespace std;


int main()
{ 
Human Tom;
Tom.A(160);
people zhangsan;
zhangsan.B(160);


//cout<<Tom.printf();
}

在標頭檔案中新增.h檔案(human.h),一般是定義的類   

class Human
{
public:
void A(int w);
private:
int *i;
};


class people
{
public:
void B(int j);
int num;
private:
int numa;
};

標頭檔案中的.cpp檔案放類的建構函式

#include "human.cpp"



#include <iostream>
#include "human.h"
using namespace std;
void Human::A(int w)
{
cout << w << endl;
}
void people::B(int w)
{
w -= 100;
cout << w << endl;
}

然後在原始檔下的main函式的要加上類的宣告標頭檔案,標頭檔案.cpp也要新增類宣告的標頭檔案

i

注意:標頭檔案中定義的類,在與之同名的c檔案中要做宣告,類的建構函式和解構函式要麼顯示定義,也要顯示的宣告,哪怕這些函式裡面沒有執行的內容,空的也要寫出來,否則會編譯通不過,要麼類的建構函式和解構函式都不寫,類預設產生不執行任何程式的建構函式和解構函式

反正一條:對於類裡面的解構函式和建構函式只要定義了,必須要宣告,函式為空也可以

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

1、專案右擊->新增->類

輸入類名後,h檔案和cpp檔案自動填充好,而且生成的類的建構函式、解構函式、包含標頭檔案全都有了

如下圖:

生成的程式碼:

h檔案

#pragma once


class Clock

{

public:

Clock();

~Clock();

};

cpp檔案

#include "Clock.h"


Clock::Clock()

{

}


Clock::~Clock()

{

}

上面都是空的,下面在裡面填上我們的函式

2、在類裡面放上我們的函式

h檔案新增函式後



#pragma once

#include <iostream>

using namespace std;


class Clock

{

public:

Clock();

void SetTime(int NewH, int NewM, int NewS); //三個形參均具有函式原型作用域

void ShowTime();

~Clock();

private:

int Hour, Minute, Second;

};

cpp檔案新增函式後:

#include "Clock.h"

Clock::Clock()

{

Hour = 0;

Minute = 0;

Second = 0;


}

void Clock::SetTime(int NewH, int NewM, int NewS)

{

Hour = NewH;

Minute = NewM;

Second = NewS;

}

void Clock::ShowTime()

{

cout << Hour << ":" << Minute << ":" << Second << endl;

}


Clock::~Clock()

{

}



3、在main裡面新增我們的類包含標頭檔案

#include "Clock.h"   //標頭檔案

Clock g_Clock;

int main() //主函式

{

cout << "檔案作用域的時鐘類物件:" << endl;

//引用具有檔案作用域的物件:

g_Clock.ShowTime();

g_Clock.SetTime(10, 20, 30);


Clock myClock(g_Clock); //宣告具有塊作用域的物件myClock,並通過預設拷貝建構函式用g_Clock初始化myClock

cout << "塊作用域的時鐘類物件:" << endl;

myClock.ShowTime(); //引用具有塊作用域的物件

return 0;

}

​​​​

執行結果:

over!!!