discards qualifier

C++中,引用const对象时,也只能通过该对象访问其const函数,因为非const函数可能修改const对象本身,编译器避免了这一类情况会报错如下:

passing ‘const Sales_data‘ as ‘this‘ argument of  ‘std::string Sales_data::isbn()‘ discards qualifiers [-fpermissive]

源代码:

class Sales_data{
    friend bool compareIsbn(const Sales_data &lhs,const Sales_data &rhs);
    string bnum;
    string bname;
public:
    Sales_data(string bnum,string bname):bnum(bnum),bname(bname){}
    string isbn() {
        return this->bnum;
    }
};
bool compareIsbn(const Sales_data &lhs,const Sales_data &rhs){
    return lhs.isbn()<rhs.isbn();
}

conpareIsbn因为调用的是const对象,访问它的isbn()函数也必须是const的才能够编译通过

class Sales_data{
    friend bool compareIsbn(const Sales_data &lhs,const Sales_data &rhs);
    string bnum;
    string bname;
public:
    Sales_data(string bnum,string bname):bnum(bnum),bname(bname){}
    string isbn() const{
        return this->bnum;
    }
};
bool compareIsbn(const Sales_data &lhs,const Sales_data &rhs){
    return lhs.isbn()<rhs.isbn();
}
时间: 2024-10-21 10:38:56

discards qualifier的相关文章

passing argument 3 of ‘wtk_hlv_rec_init’ discards ‘const’ qualifier from pointer target type

-Werror,编译出现如下错误: src/wtk/exam/wtk_ndx.c:154:6: error: passing argument 3 of ‘wtk_hlv_rec_init’ discards ‘const’ qualifier from pointer target type [-Werror] ret = wtk_hlv_rec_init(&(nd->rec_hd), &(cfg->rec_hd), nd->hmmset, 0.02f); ^In fi

Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析

URL:http://www.ulewo.com/user/10001/blog/273 我们在使用spring的时候经常会用到这些注解,那么这些注解到底有什么区别呢.我们先来看代码 同样分三层来看: Action 层: package com.ulewo.ioc; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Co

springmvc结合@Qualifier注解调用同一接口的不同实现类

#在controller中定义接口并使用spring注解方式@autowired来进行装配工作 #对不同的service进行get和set,并在set方法中使用@qualifier标注对应的service名称, 注意,这里标注的service名称一定要跟spring对应xml中的bean的ID保持一致! #在对应controller中 #实现类2 #实现类1 #spring对应xml中配置对应javabean,bean对应ID的名称一定要和controller中的service名称保持一致!

Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解

原创整理不易,转载请注明出处:Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解 代码下载地址:http://www.zuidaima.com/share/1772661373422592.htm 本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifi

Spring Annotation(@Autowire、@Qualifier)

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans 3 xmlns="http://www.springframework.org/schema/beans" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:xsi="http://www.w3.org/20

@Autowired 注释与@Qualifier 注释

@Service("OrganDaoIbatis") public class OrganDaoIbatis extends BaseDao implements IOrganDao { @Autowired(required=false) @Qualifier("sqlMapClient") private SqlMapClient sqlClient = null; 使用 @Autowired(required = false)作用: 当候选 Bean 数目不为

spring @Qualifier 示例

@Qualifier 常出现在一个接口,多个实现类调用的情况下,在一些选择处理上,给出使用示例,体会此种妙处. package spring; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Annota

spring注入之使用标签 @Autowired @Qualifier

  使用标签的缺点在于必须要有源码(因为标签必须放在源码上),当我们并没有程序源码的时候,我们只有使用xml进行配置. 例如我们在xml中配置某个类的属性            <bean name="studentService"class="com.bjsxt.service.StudentService"> <property name="studentDao"ref="stuDaoImpl">&

@Autowired 凝视遇到的问题,@Qualifier 帮助解决这个问题

当候选 Bean 数目不为 1 时的应对方法 在默认情况下使用 @Autowired 凝视进行自己主动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个. 当找不到一个匹配的 Bean 时,Spring 容器将抛出BeanCreationException 异常.并指出必须至少拥有一个匹配的 Bean.我们能够来做一个实验: 清单 10. 候选 Bean 数目为 0 时 <?xml version="1.0" encoding="UTF-8"