Q: non-member function unsigned int abs(const T&) cannot have cv-qualifier.

template<typename T>
inline unsigned int abs(const T& t) const
{
return t>?t:-t;
} ans: The ending const specifies that you will not modify any member variables of a class belongs to.
Free functions (and class static functions) don't have a this pointer.

在C++中CV指const和volatile—

1、非成员函数不能有CV限定,友元函数不是类的成员函数声明友元函数不能用const限定。

       friend voin fun(classname &ref)const;//编译器会给错误error: non-member function ‘xxxxxxxxx’ cannot have cv-qualifier

2、静态成员函数不能有CV限定

情况一、在C++中,非成员函数不能含有CV限定,即const和volatile限定

#include <iostream>
using namespace std;

double getArea() const
{
    return 0.0;
}
double getVolume() const
{
    return 0.0;
}

int main(int arg,char *argv[])
{
    cout << getArea() << endl;
    cout << getVolume() << endl;
    return 0;
}

编译产生错误:

意思是:

非成员函数不能有cv 限定符,cv 限定符 c++有两个:const 和 volatile,这儿指const  。

情况二、在C++中,静态成员函数不能有CV限定,即const和volatile限定

头文件static_cpp.h

#ifndef __STATIC_H
#define __STATIC_H

class CStatic 
{
    private:
        static int static_value;
    public: 
        static int get_static_value() const;          //当不是static方法时,可以用const进行限定。
};

#endif

源文件staitc_cpp.cpp

#include "static_cpp.h"

int CStatic::get_static_value() const 
{
        return static_value;
}

在main.cpp中

#include "static_cpp.h"
#include <iostream>
using namespace std;

int CStatic::static_value = 1;

int main(int argc,char *argv[])
{
    cout << CStatic::get_static_value()<<endl;
    return 0;
}

编译出现的错误:

意思是:

静态成员函数,不能有CV限定符,在C++中CV限定符指const和volatile,这儿指const。

情况三:

#include<iostream>

#include<string>

using namespace std;
  
   class Animal{
     public:
     
    friend void showRes(Animal &ref)const;//这行编译器会给错误non-member function ‘void showRes(Animal&)’ cannot have cv-qualifier 
   friend void showRes(Animal &ref)const;
    private:
     int age;
     string name;
  };
 
  void showRes(Animal &ref){
    ref.age=15;
    ref.name="panda";
    cout << ref.age << ref.name << endl;
  }

non-member function cannot have cv-qualifier的更多相关文章

  1. Thinkphp---------Call to a member function free_result() on a non-object

    1.平时用框架用久了,直接执行原生的sql反而做起来反应迟钝了.今天遇到一个问题,就是直接执行一个添加的sql语句,然后我用了TP框架的M()->query();方法.运行以后,会报Call t ...

  2. :( Call to a member function Table() on a non-object 错误位置

    :( Call to a member function Table() on a non-object 错误位置 $Model不是模板,是你自己先前链接数据库返回的对象...我的是改为$Form

  3. Fatal error: Call to a member function bind_param() on a non-object in

    今天在练习 mysql是出现错误:   Fatal error: Call to a member function bind_param() on a non-object in 解决步骤: 1. ...

  4. ECmall错误:Call to a member function get_users_count() on a non-object

    问题描述: 在后台添加了一个app报错:Call to a member function get_users_count()Fatal error: Call to a member functio ...

  5. magento后台 Fatal error: Call to a member function getId() on a non-object in错误

    后台分类管理出现错误 Fatal error: Call to a member function getId() on a non-object in 在数据库中运行以下sql语句 INSERT I ...

  6. Function语义学之member function

    之前我们讲过编译器会对 nonmember functions 进行怎样的扩充和该写,今天我们来讲一下 member functions 函数调用方式 一.Nonstatic Member Funct ...

  7. Timer.4 - Using a member function as a handler

    In this tutorial we will see how to use a class member function as a callback handler. The program s ...

  8. C++ - 模板类模板成员函数(member function template)隐式处理(implicit)变化

    模板类模板成员函数(member function template)隐式处理(implicit)变化 本文地址: http://blog.csdn.net/caroline_wendy/articl ...

  9. About The Order of The Declarations And Definition When Making a Member Function a Friend.关于使类成员成为另一个类友元函数的声明顺序和定义。

    If only member function clear of WindowMgr is a friend of Screen, there are some points need to note ...

  10. About Why Inline Member Function Should Defined in The Header File

    About why inline member function should defined in the header file. It is legal to specify inline on ...

随机推荐

  1. 《Linux内核设计与实现》第十八章学习笔记

    第十八章 调试 [学习时间:1小时 总结博客时间:1小时15分] [学习内容:出现bug的原因.内核调试器gdb.使用Git进行二分查找] 内核级开发的调试工作远比用户级开发艰难,它带来的风险比用户级 ...

  2. 去掉UITabBar和NavigationBar上的黑线

    在UITabBarViewController界面设置 self.tabBar.barStyle = UIBarStyleBlack; 在NavigationController界面设置 self.n ...

  3. Knowledge-Defined Networking

    知识定义的网络(Knowledge-Defined Networking) 来源:ACM SIGCOMM Computer Communication Review 年份:2017 是什么:容纳和利用 ...

  4. opencv学习笔记(二)

    摘要:学习资料主要参考于毛星云主编<opencv3编程入门> 1.图像显示 #include<opencv2/opencv.hpp> using namespace cv; / ...

  5. AWK学习一例

    awk 'BEGIN { for (i = 1; i <= 7; i++) print int(101 * rand()) }'

  6. Java 模仿 C# 字典 一例

    List<Map.Entry<Integer, String>> orderStatusList = new ArrayList<Map.Entry<Integer ...

  7. Selenium的自我总结2_元素基本操作

    对于Selenium的基本元素的操作,就自己的了解做了一个基本的介绍,这篇直接上代码,针对一个页面如何操作写了些基本的操作脚本,希望对初学者有一定的帮助,也希望通过这些总结让自己有一些清晰的认识和了解 ...

  8. Jenkins 登录提示 登录无效 的解决办法

    学习自:https://www.cnblogs.com/amberly/p/6288773.html 1. jenkins服务器重启之后, 再次登录提示登录无效. 重启多次也无法解决. 2. 根据文档 ...

  9. 关于ListBox在Grid中无法充满的问题

    WPF布局的时候发现一个问题,ListBox放在Grid中的时候,老是无法充满整个Grid,但是查看代码也没有设置相关的属性,原来在设置ListBox之前首先要让ListBox的容器充满,然后List ...

  10. codeforces146A

    Lucky Ticket CodeForces - 146A Petya loves lucky numbers very much. Everybody knows that lucky numbe ...