久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2434|回復: 0
收起左側

VC++基本概念

[復制鏈接]
ID:105323 發表于 2016-2-12 18:58 | 顯示全部樓層 |閱讀模式
本帖最后由 51黑黑黑 于 2016-2-12 19:01 編輯

  類是具體對象(實例)的抽象。那么究竟如何抽象?就是把一個實例的特征提取出來,比如,水果是一個類,蘋果是水果的一個實例,蘋果有蘋果的特征,其他水果有其他水果的特征,比如香蕉。我們只要從蘋果香蕉中把特征提取出來進行統一管理就可以,這樣就形成了水果類classFruits()。然后“Fruites apple”,表示蘋果是水果的一個實例。就像人如果是一個類的話,我們每一個人都是這個類的實例。  構造函數最重要的作用是創建對象本身。C++規定,每個類必須有一個構造函數,沒有構造函數,就不能創建任何對象。 C++又規定,如果一個類沒有提供任何的構造函數,則C++提供一個默認的構造函數(由C++編譯器提供),這個默認的構造函數是一個不帶參數的構造函數,它只負責創建對象,而不做任何的初始化工作。只要一個類定義了一個構造函數,不管這個構造函數是否是帶參數的構造函數,C++就不再提供默認的構造函數。也就是說,如果為一個類定義了一個帶參數的構造函數,還想要無參數的構造函數,則必須自己定義。
  當一個對象生命周期結束時,其所占有的內存空間就要被回收,這個工作就由析構函數來完成。 析構函數是“反向”的構造函數,析構函數不允許有返回值,更重要的是析構函數不允許帶參數,并且一個類中只能有一個析構函數。析構函數的作用正好與構造函數相反,對象超出其作用范圍,對應的內存空間被系統收回或被程序用delete刪除時,析構函數被調用。 根據析構函數的這種特點,我們可以在構造函數中初始化對象的某些成員變量,給其分配內存空間(堆內存),在析構函數中釋放對象運行期間所申請的資源。
  如圖所示,CTextView類中的構造函數是CTextView(),析構函數為~CTextView()。

 重載函數是函數的一種特殊情況,為方便使用,C++允許在同一范圍中聲明幾個功能類似的函數同名,但是這些同名函數的形式參數(指參數的個數、類型或者順序)必須不同,也就是說用同一個運算符完成不同的運算功能。這就是重載函數。重載函數常用來實現功能類似而所處理的數據類型不同的問題。
兩個重載函數必須在下列一個或兩個方面有所區別:
1.、函數有不同參數。
2、函數有不同參數類型,
第一種情況,假設一個對象為cc,那么cc調用兩個函數都為cc.output(),編譯器無法分辨是哪一種,所以不能構成重載;第二種情況,由于b已經被設為缺省值5,而且另一個參數相同,所以也不能構成重載。

VC++(一)標準輸入輸出
VC++6.0標準輸入輸出流庫函數iostream常用的輸入和輸出函數為cin和cout,下面用一個簡單的例程來說明

#include <iostream.h>
int main()
{
cout<<"Enter twonumbers:"<<endl;
int v1,v2;
cin>>v1>>v2;
cout<<"The sum of"<<v1<<"+"<<v2<<"="<<v1+v2<<endl;
return 0;
}

cout后面跟左書名號,代表輸出
endl表示換行
cin后面跟右書名號,代表輸入

VC++(二)MFC AppWizard初步

首先建立一個MFC AppWizard工程,工程名Test如下圖所示




                                                     

  建立完成后,會出現如上圖所示的視圖,在類視圖中CMainFrame的名字是不會變的,而APP、Doc、View是以C+工程名+類的方式出現的?梢钥吹剑谏厦婀こ讨胁⑽凑业饺肟诤瘮礧inMain,其實它的位置在安裝目錄下VC98\MFC\SRC里面的APPMODUL.CPP中,如下圖所示:

  事實上,_tWinMain是個宏,直接右鍵轉到定義出就會發現#define_tWinMain  WinMain這樣一個宏定義。我們在_tWinMain函數這里設置一個斷點并調試運行,就會發現程序確實在這里停了,說明進入了這個函數。

  接下來一個比較重要的問題是全局對象CTestApp

  CTestApp是從CWinApp派生出來的一個類,而theApp是CTestApp實例化的一個對象,它唯一地表示應用程序本身。CTestApp()導致CWinApp::CWinApp(LPCTSTRlpszAppName)的調用,這個函數主要做程序運行前的初始化工作。


VC++(三)指向指針的指針如下例所示
#include "iostream.h"

int ival=1024;
int *pi=&ival;
int **ppi=π
int a[5]={3,8,7,6,5};
int *pa=a;
const size_t arr_sz=5;

int main()
{
cout<<"ival is"<<ival<<"\n"
<<"&ival is"<<&ival<<"\n"
<<"*pi is"<<*pi<<"\n"
<<"pi is"<<pi<<"\n"
<<"**ppiis"<<**ppi<<"\n"
<<"*ppiis"<<*ppi<<"\n"
<<"ppiis"<<ppi<<"\n"
<<"ais"<<a<<"\n"
       <<"pais"<<pa<<"\n"
<<"*pais"<<*pa<<"\n";
pa=&a[2];
cout<<"pais"<<pa<<"\n"
<<"*pais"<<*pa<<"\n";
pa=a+1;
cout<<"pais"<<pa<<"\n"
<<"*pais"<<*pa<<"\n";

for(int *pbegin=a,*pend=pbegin+arr_sz; pbegin!=pend;++pbegin)
{
cout<<pbegin<<""
  <<*pbegin<<"\n";
}
return 0;



運行結果如下圖所示




顯然指針變量pi保存的是變量ival的地址,ppi實際上保存的是pi的地址,那么*ppi就是pi的值(即ival的地址),**ppi就是ival的值。

而指向數組的指針pa=a+1后,實際上指向了下一個元素
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久婷婷天堂 | 国产精品九九九 | 激情 亚洲 | 国产女人与拘做视频免费 | 免费能直接在线观看黄的视频 | 99久久婷婷国产综合精品电影 | 91福利在线导航 | 欧美一级欧美三级在线观看 | av中文字幕在线播放 | 国产成人免费网站 | 色偷偷噜噜噜亚洲男人 | av一二三区 | 午夜视频在线视频 | 久久大陆 | 999久久久久久久 | 色综合久久天天综合网 | 国产高清免费视频 | 日本精品一区二区三区四区 | 午夜寂寞影院在线观看 | 国产一区在线视频 | 在线观看视频一区 | 亚洲精品在线视频 | 精品久久久久久久久久久久 | 国产一区视频在线 | 午夜精品影院 | 国产精品久久久久久久久久免费看 | 日本不卡一区二区三区在线观看 | 亚洲精品在线免费看 | 九九伊人sl水蜜桃色推荐 | av中文字幕在线观看 | 国产精品无码专区在线观看 | 欧美日韩一 | 国产98色在线 | 日韩 | 在线精品亚洲欧美日韩国产 | 在线观看国产 | 国产精品久久久久无码av | 国产91亚洲精品一区二区三区 | 亚洲另类视频 | 国产大学生情侣呻吟视频 | 成人在线中文字幕 | 午夜精品一区二区三区在线观看 |