筆者這幾天在熟悉vs2015工具編輯c++,(從前用的都是vc++6.0)。發現還真是不容易使用,簡單的乙個小程式會報錯一大堆你看不懂的問題。現將我發現的重要的乙個問題呈現給大家。
在使用類模板設計物件時,通常會使用友元函式提供對該類的內部私有成員資料訪問,請看下面這段**,定義了乙個順序表的基本運算
1 template 2具體實現不列出來了,然後我在主函式中是這樣呼叫的class sqlistclass 變為l=
19//
template
20 friend bool deleteelem(sqlistclass& l,t e); //
刪除指定元素值
21//
template
22 friend void merge2(sqlistclass& l1, sqlistclass& l2, sqlistclass&l3); //
二路歸併演算法
23 };
1 #include2 #include "在編譯時會報錯如下sqlistclass.cpp"3
using
namespace
std;
4int
main()5;
8 s1.createlist(a, 4);9
10int b[3] = ;
11 s2.createlist(b, 3
);12
13 sqlistclasss3;
14merge2(s1, s2, s3);
15s3.displist();
16 }
解決方法:在定義模板類和模板函式時候,必須加上template 這一行語句
即:①當定義模板類時,在類定義標頭檔案(*.h)可以這樣寫
template
class a{
//類體
在類實現(*.cpp)裡面,每乙個成員函式都要這樣寫
template
返回值 a::函式名(形參列表){
//函式體
②在模板類中要定義友元函式不免也是要定義模板函式的
此時需要注意,(*.h)標頭檔案中模板友元函式的定義應該是
template
friend 返回值 函式名(形參表);
(*.cpp)檔案中模板友元類實現如下:
template
返回值 函式名(形參表)
//函式體
這樣就不會報錯2019了。問題解決
同理,在設計模板友元類b時,不管是提前宣告友元類b,還是在類a中定義友元模板類b,還是定義模板友元類b都不要忘記加上
template
使用vs2015編寫c語言程式
編寫c語言程式的軟體有很多,當年剛開始學c的時候,使用的是vc 6。最近想用vs2015嘗試寫c。以下是使用vs2015編寫c的方法步驟,其中 的代表是某個命令或按鈕功能 1.建立專案,檔案 新建 專案 2.專案型別為 win32控制台應用程式 自己定義專案名稱,確定 3.按照win32應用嚮導完成...
VS2015控制台程式使用CString類的方法
cstring是mfc類,如果要在vs2015控制台程式中使用該類時,需要對程式進行屬性設定以及新增相應的標頭檔案。在控制台程式中,選擇vs2015選單欄 專案 屬性 在專案屬性頁的左側選擇 配置屬性 常規 在右側的 專案預設值 mfc的使用 的下拉列表中,選擇 在靜態庫中使用mfc 如圖1所示。圖...
VS2015 怎麼安裝RDLC報表模板?
這幾天剛好用到微軟自帶的rdlc報表,但是在vs2015張找了一圈也沒找,難道是我vs版本 不支援,在網上查了下,有的人說vs2015社群版,企業版不支援,只有專業版支援,各說不一,想想不科學呀,微軟自帶的報表之前的版本都支援呀。自己又在找各種資料,終於找到了,原來vs2015 預設安裝裡面micr...