1. 程式人生 > >c++;物件引用前加const報錯:不能將“this”指標從“const a”轉換為“a &”

c++;物件引用前加const報錯:不能將“this”指標從“const a”轉換為“a &”

物件引用前加const報錯:不能將“this”指標從“const a”轉換為“a &”

#include "stdafx.h" 
#include <iostream>
using namespace std;
class a
{
int i;
public:
a(int j):i(j)
{}
void show()
{
cout<<"i="<<i<<endl;
}
};

void test(const a &aa)
{
aa.show();
}

void main()
{
a aobj(5);
aobj.show();

}

解答:

const a &aa相當於一個const物件,由於const物件在呼叫成員函式的時候,會將this指標強行轉換為const this,所以它將無法找到相應的const show()函式,並且編譯器也無法將一個const的物件轉化為一個普通物件來呼叫這個普通的show()方法,所以就會產生如題的編譯錯誤

相關推薦

c++;物件引用const:不能this指標const a轉換a &”

物件引用前加const報錯:不能將“this”指標從“const a”轉換為“a &”#include "stdafx.h" #include <iostream>using namespace std;class a{int i;public:a(in

error C2662: 無法this指標const轉化為非const

今天在寫程式時遇到了一個報錯: error C2662: 'x' : cannot convert 'this' pointer from 'const class Point3d' to 'class Point3d &' 先看下程式碼: #include &l

不能this指標const type" 轉換"type &"

當在類中宣告並定義了一個普通的公共成員函式,在主函式裡定義了一個此類的常物件,如果試圖使常物件呼叫非”常成員函式“就會產生如標題所說的:  error: 不能講this指標從"const classtype" 轉換為 "classtype &"。 解決方案是將成員函

SQL語言做減運算時某項的null值轉換0

        在SQL語言中,很多時候,在表項中會遇到null值,null值有三大特點:1)NULL值不參加統計;2)NULL值不進入計算表示式;3)不能與其它值進行比較。 因此,在運算中要將null值有時候轉換成其他值,這裡提供一種加減運算中轉換為0的方法。      

C# 訪問數據的時候 (拒絕了對對象 'XXXX' (數據庫 'SHQY',架構 'dbo')的 SELECT 權限)

拒絕 select doc use 對象 car exe lec -- 拒絕了對對象 ‘XXXX‘ (數據庫 ‘SHQY‘,架構 ‘dbo‘)的 SELECT 權限 解決辦法 use [docareMZ]--docareMZ 數據庫名 GO GRANT SELECT O

常量不引號提示‘參數**沒有默認值’

選中 需要 ron img ges style sql語句 bsp nbsp 問:sql語句中常量不加引號報錯提示‘參數**沒有默認值’; 解決方法: 如下圖所示加上英文狀態下的引號; 字符串 要加上 單引號;‘‘單引號 算一個 ; 問:為何選中這列不需要加引

maven spring 引用spring-test.jar

test run ring maven 一個 spring pri img 工程 原因: 因為我想在項目中編寫test方法,來進行接口測試是否正確,當我執行Tomcat7::run 時,報了這個錯誤,讓我十分納悶 我百度了一下,都是說在pom文件中加一個配置(具體自

(已解決)c# 客戶端程式訪問oracle:ORA-12154: TNS: 無法處理服務名

錯誤:ORA-12154: TNS: 無法處理服務名 這個錯誤大家在百度上一搜一大把,但是我出現這個錯誤的原因跟百度不太一樣,我的客戶端程式在不同的目錄可以正常執行,但在其中1個目錄就是要出錯,因此我想到是目錄路徑中出了問題,既然是路徑那就只能是資料夾名有什麼特殊之處導致不能執行,後來發現不能執

c#使用Npoi 提示 Excel匯出 The maximum number of cell styles was exceeded. You can define up to 4000

在使用NPOI 匯出EXCEL的時候 提示 The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook 出現此問題 原因如下: private stat

針對Android Studio安裝完之後activity_main.xml幾行的解決建議

當你安裝完Android Studio之後,開始了一個新專案,然後你發現: activity_main.xml前幾行報錯,比如http://schemas.android.com/apk/res/android “URI is not registered”。

VS2013執行C++This function or variable may be unsafe. Consider using fopen_s instead.

在vs2013中執行時發生的關於方法呼叫的不安全錯誤。 1.更換方法,但是有些方法更改後引數不變,所以可能比較麻煩。 2.新增一條前處理器定義: 點選專案——>屬性——>c/c++——>前處理器——>預處理定義——>點選下拉按鈕——>編輯——>新增“_CRT_S

c++中函式~

1.解構函式(destructor) 與建構函式相反,當物件脫離其作用域時(例如物件所在的函式已呼叫完畢),系統自動執行解構函式。解構函式往往用來做“清理善後” 的工作(例如在建立物件時用new開闢了一片記憶體空間,應在退出前在解構函式中用delete釋放)。

今天使用gson json字串轉物件的時候,一直Unterminated object at line 1 column 14

  我這邊的話。這個錯誤是因為json字串包含了特殊的字元。用這個在來轉換物件的時候,就會出現這種錯誤。我那邊有出現兩個一個是: 一個是/所以要把這些替換掉就可以了   //去掉特殊的字元 : /這些   String s=base.getData();   s=s.rep

c#中,字串@是什麼意思

讓轉移字元"\"保持原意,不要轉義,如一個地址字串string path="c:\abc\";預設的"\"是作為轉義來使用的,而不是一個真的斜槓字串所以這個地方要取到地址,正確的寫法應該是:string [email protected]"c:\abc\"; //這裡的@讓斜槓保持原意,不要轉義或者

DecimalFormat類——Java中字串型別的數字和精度缺失的解決辦法

        編碼中加減乘除經常遇到,稍有不適,友誼的小船說翻就翻。         Demo來一發,做做記錄: //保留兩位小數 private DecimalFormat de

關於C++物件引用的這種用法

特殊情況下,江湖大佬都是有替身的;替身幫真身做事,跟他很像;你對替身說的話,相當於對真身說,替身被殺死了,本尊卻沒有任何事。 可能有這樣一種情況,我沒有使用指標,但很多地方都需要用到一個物件,例如:一棵樹,我想獲取到子結點,並對子結點進行賦值等;但是又不想因為

解決Maven專案下新增HttpServletRequest 或 HttpServletResponse需引用的依賴包

今天在開發中遇到了一個問題,專案中需要HttpServletRequest  和 HttpServletResponse 但是我專案是用maven啟動的,需要手動匯入servlet-api.jar包

JavaScript利用append添元素

fail ren contain ont tails parent 老師 edi exc 1、錯誤描述 在IE瀏覽器上: Uncaught HierarchyRequestError:Failed to excute ‘appendChild‘ on ‘Node‘:The

spring mvc 中jsp 引用js jquery 檔案404 問題解決

在spring mvc 中過濾器為/ web配置檔案如下 <servlet> <servlet-name>springmvc</servlet-name> <!-- 前端控制器 -

”無法連接域控制器“解決辦法

服務器配置 fff text 出現 mar 技術分享 51cto 是否 log 出現上述問題,可以檢查客戶機的DNS服務器配置是否指向域服務器的IP。加域報錯”無法連接域控制器“解決辦法