使用vs2015編輯c 模板程式報錯2019

2022-02-06 09:23:55 字數 1697 閱讀 9571

筆者這幾天在熟悉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...