zoukankan      html  css  js  c++  java
  • C++编译错误cannot have cv-qualifier

    const关键字放在非静态成员函数声明的尾部,表示该非静态成员函数不修改对象内容。volatile关键字放到非静态函数声明的尾部,表示该非静态成员函数是线程安全的。注意他们都只能放到非静态成员函数声明的尾部,否则会产生如下报错:
    error: non-member function 'xxx' cannot have cv-qualifier

    放到非成员函数声明的尾部

    #include <iostream>
    
    using namespace std;
    
    double getSqureArea(int a) const
    {
        return a * a;
    }
    
    
    int main(int arg, char *argv[])
    {
        cout << getSqureArea(2) << endl;
        return 0;
    }
    编译上面的C++程序,报错如下:
    g++ -c const_volatile_test.cpp -o const_volatile_test.o
    const_volatile_test.cpp:12:28: error: non-member function 'double getSqureArea(int)' cannot have cv-qualifier

    放到静态成员函数声明的尾部

    #include <iostream>
    
    using namespace std;
    
    class CStatic
    {
        private:
        static int static_value;
        public:
        static int get_static_value() const
        {
            return static_value;
        }
    };
    
    int CStatic::static_value = 1;
    int main(int argc,char *argv[])
    {
        cout << CStatic::get_static_value()<<endl;
        return 0;
    }
    编译上面的C++程序,报错如下:
    g++ -c const_volatile_test.cpp -o const_volatile_test.o
    const_volatile_test.cpp:17:39: error: static member function 'static int CStatic::get_static_value()' cannot have cv-qualifier
  • 相关阅读:
    Oracle导数据到SQL server的方法总结
    linux vmware 安装步骤
    linux user
    linux 下载jdk
    Jaxb2实现JavaBean与xml互转的方法详解
    idea 远程代码调试
    Java一次读取文本文件所有内容
    mysql 8 server windows 安装经验分享
    java和mysql的length()区别及char_length()
    Java web 强制301跳转
  • 原文地址:https://www.cnblogs.com/jiangxinnju/p/5516904.html
Copyright © 2011-2022 走看看