首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 編程錯誤與警告 (一):cannot have cv-qualifier 非法 cv 限定

     編輯:關於C++

核心規則

CV 限定符(const/volatile)僅允許用於非靜態成員函數。 以下場景均非法:

1. 普通函數(非成員函數)

int test() const { ... } // 錯誤:普通函數不能有 const 限定

2. 靜態成員函數


class Test {
public:
    static int test_fun() const; // 錯誤:static 成員函數不能有 const/volatile
};

原因: 靜態成員函數無 this 指針,const 本質是修飾 this 的類型(const ClassName* this),無 this 則無意義。

3. 合法場景:非靜態成員函數


class Test {
public:
    int getValue() const; // 正確:承諾不修改成員變量
    void setValue(int v) volatile; // 合法但罕見:針對 volatile 對象
};

總結表

函數類型允許 cv 限定?
普通函數否
靜態成員函數否
非靜態成員函數是

遇到此錯誤,檢查函數是否誤加 const/volatile,移除即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved