之前沒有用VS或者在vs中一個源程序寫到底,沒有使用C++編一個工程
打開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文件,一般是定義的類
#include "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!!!