位置:首页 » 技术 » C++成员指针没法赋值

C++成员指针没法赋值

日期:2013-01-02 阅读:0num
Advertisement

C++成员指针无法赋值

class Image{

public:    int* getA(){return a;}    Image& operator=(const Image&r); 

private:        int* a;}

Image& operator=(const Image&r){    a = new int;    *a = 23;}

void main(){    Image lena("lena.bmp");

Image lena1 = lena;    int* b = lena1.getA();    cout << *b;}

这是部分代码,运行后,指针b无法赋值啊,为什么呢?
------解决方案--------------------
引用:

Image lena1 = lena;这一句其实没有调用你写的重载赋值操作符函数,它直接初始化了。
分成两句试试
Image lena1;
lena1 = lena;

Image lena1 = lena;这一句直接调用复制构造函数,你贴出来的代码里没有。
------解决方案--------------------

class Image{public:    int* getA(){return a;}    Image& operator=(const Image&r); private:    int* a;};

Image& Image::operator=( const Image&r ){    a = new int;    *a = 23;    return *this;}

void main(){    Image lena;    Image lena1 ;    lena1= lena;    int* b = lena1.getA();    std::cout << *b;}
相关文章
  • C++成员指针没法赋值

    C++成员指针无法赋值 class Image{ public: int* getA(){return a;} Image& operator=(const Image&r); private: int* a;} Image& operator=(const Image&r){ a = new int; *a = 23;} void main(){ Image lena("lena.bmp"); Image lena1 = lena; int* b =

  • 关于构造函数中存在字符指针成员变量的赋值有关问题

    关于构造函数中存在字符指针成员变量的赋值问题 class Student{ public: Student(char *s):str(s){ // 这种写法,有没有问题, for(int i = 0; i < strlen(s); i++) cout << str[i];} Student(int , char *s){ // 还是应该使用这种方法, 程序跑的时候,两个都可以正常运行的.求解答,还有原因.谢谢了 str = new char[strlen(s) +1]; strcpy(s

  • 请问:指向基类/派生类指针,指向基类成员/派生类成员指针,及互相赋值

    请教:指向基类/派生类指针,指向基类成员/派生类成员指针,及互相赋值 Bjarne Stroustrup著 裘宗燕译 C++程序设计语言(特别版) Page373/374 从书上理解:可以安全地将一个指向基类成员的指针赋值给一个指向派生类的成员的 指针,反过来不行. 另外,可将一个指向派生类对象的指针赋值给一个指向基类得指针,即 基类指针可在不加显式转换的情况下指向派生类对象. 不懂的地方:上述两个规则都是为了维护一种基本保证:如果一个对象所提供的性质 少于某个指针允诺的话,该指针就不能指向这个

  • 关于函数指针的赋值解决思路

    关于函数指针的赋值 class A { typedef int (A::*PFUNC)(int); PFUNC *p1; void init(); int f1(int); int f2(int); ... }; void A::init() { int t=2; p1=new PFUNC [t]; p1[0]=&A::f1; p1[1]=&A::f2; } 程序运行没有问题,但调试的时候,发现p1[0]的值为:f1的地址,而p1[2]的为f2的地址,p1[1]显示0x000000 我又单

  • 类的成员指针使用,帮帮忙,该怎么处理

    类的成员指针使用,帮帮忙 LinkList.cpp: void LinkList::bankin(LinkList p,float x) { float LinkList::*top; top=&LinkList::m_Rest; p.*top=x; } float LinkList::sage() { return m_Rest; } int _tmain(int argc, _TCHAR* argv[]) { LinkList person; person.bankin(person,300

  • 关于类成员指针的一些有关问题

    关于类成员指针的一些问题 一下问题都是在看C++ Primer 13.6的时候得出的问题 1. 假设有这么一个类 class Screan{ private: short _height; }; 在外面,我可不可以这样定义 typedef short Screen::*ps_Screen; ps_Screen pH = &Screen::_height; 书上是这么写的,但是我觉得_height是私有的,这样赋不就破坏了私有的性质,在外部就可以改变_height的值了 上边如果变成了静态的 cl

  • C++拾遗--类成员指针 C++拾遗--类成员指针

    C++拾遗--类成员指针 前言 类成员的类型与一般类型不同,那么类成员的指针类型自然与一般类型的指针有所区别.我们有必要来探讨下类成员指针的使用. 正文 类成员指针是指可以指向类的非静态成员的指针.它的类型包括了类类型和所指向的成员类型.一般而言,指针指向的是对象,而类成员指针指向的是类成员而非类对象. 需要指出,类成员指针不是可调用对象,要想通过类成员指针调用类成员,需结合类对象或类指针.静态类型成员属于类,类型与普通指针相似. 数据成员指针 一般的声明形式: 成员类型 classname::

  • 指针的赋值有关问题

    指针的赋值问题 #include <stdio.h> #include <iostream.h> void inc(int *& i) { i++; } int main() { int b = 7; int* i = &b; cout < < *i < < endl; *i = 1; cout < < "i = " < < i < < endl; cout < < *i &

  • C++可不可以定义一个成员指针,指向外部函数

    C++能否定义一个成员指针,指向外部函数? 请问c++能否定义一个作为成员变量的函数指针,指向类外部的全局函数? 如果可以,请问语法是怎么样的?我在网上找半天都只有指向成员函数的指针.. --cut-- #include <iostream>using namespace std; void Func(){ cout << "全局函数" << endl; } class A{public: void (*pFunc)();}; void main()

  • pascal指针变量赋值,该如何处理

    pascal指针变量赋值 各位大大,我想问一下pascal指针变量赋值的问题: 1.我有条数据是这样的:12 34 57 639 Alfred Lincoln: 8,我定义了2个type用来放数据: type Field = packed array[1..33] of char; type employee = record state: Integer; plant: Integer; dept: Integer; empid: Integer; count: Integer; name:

  • 常量对象有关问题,怎么保证一个常量指针只能赋值给常量对象

    常量对象问题,如何保证一个常量指针只能赋值给常量对象? 有类定义 class MyClassA{public: MyClassA(OtherClass* obj);} //那么可以酱紫:OtherClass* obj1;MyClass myClass1(obj1);//这是合法的 //还有这种写法const OtherClass* obj2;MyClass myClass1(obj2);//但是怎么让这种写法不合法而必须写成这样子呢?const MyClass myClass1(obj2); c

  • c++ 指针重新赋值的有关问题

    c++ 指针重新赋值的问题 编译环境 VS2005 int i,j,k,b[5],a[5][3]={12,34234,324,534,645,67,6876,789,7809,789,2345,679,623,45,5}; int *ap; for(i=0;i <5;i++) { ap=a[i]; b[i]=0; for(j=0;*ap!=0;ap++,j++) { if(b[i] <*ap) b[i]=*ap; } } 上面FOR循环中的ap要在每次循环时重新获取a[i]的首地址,可是现在A

  • java基础:成员变量在赋值前先置空?该怎么解决

    java基础:成员变量在赋值前先置空? 今天看了一下commons-logging的源码,看到Log接口的实现类的时候,发现一个问题,在这些实现类的构造方法中,为成员变量name和logger赋值之前,都会先把它们置为null.以Log4JLogger为例吧: public class Log4JLogger implements Log, Serializable { private transient Logger logger; private String name; public Lo

  • 求以下程序的异常解决方式 关于realloc()对二阶指针的赋值

    求以下程序的错误解决方式 关于realloc()对二阶指针的赋值 请帮我找出下面这个程序执行错误的原因并说明如何修正使它能正确运行 拜托了 C/C++ code #include <STDIO.H> #include <ALLOC.H> #include <STDLIB.H> #include <IOSTREAM.H> #include <STRING.H> #define BASE_LENGTH 1 #define INCREMENT_LENG

  • 初学者有关问题:不能用cin给指针变量赋值?

    菜鸟问题:不能用cin给指针变量赋值?? int *p; cin > > p; //编译的时候没有问题,但是一运行就出错 这是为什么啊? ------解决方案-------------------- 编译也不过的: error C2679: binary '> > ' : no operator defined which takes a right-hand operand of type 'int * ' (or there is no acceptable conversio

  • 指针地址赋值解决方案

    指针地址赋值 给定一个变量,将该变量值作为指针地址赋给一指针,VC可以做强制转换: unsigned long Param int * p=null; Param=123456 p = (int *)Param; DELPHI怎么处理? ------解决方案-------------------- procedure TForm1.Button1Click(Sender: TObject); var p,q :PInt; param :longint; begin New(p); param :

  • pascal指针变量赋值解决办法

    pascal指针变量赋值 各位大大,我想问一下pascal指针变量赋值的问题: 1.我有条数据是这样的:12 34 57 639 Alfred Lincoln: 8,我定义了2个type用来放数据: type Field = packed array[1..33] of char; type employee = record state: Integer; plant: Integer; dept: Integer; empid: Integer; count: Integer; name:

  • 释放类成员指针指向的内存与释放类对象内存的先后有关问题

    释放类成员指针指向的内存与释放类对象内存的先后问题. class T{ private: char * str; int len; pulic: ....; ~T();};T::T(const T & st) //复制构造函数{ len=st.len; str=new char[len+1]; std::strcpy(str,st.str);}给定一个已经初始化的类对象S;T * favor=new T(S):delete favor;当delete对象时,这里释放的是保存str的指针和len成

  • 可以帮小弟我解析下成员指针吗

    可以帮我解析下成员指针吗? 可以帮我解析下成员指针吗? ------解决方案-------------------- 有两种,指向成员函数,一种是成员 class test { public: int x; void Do() { }; } void (test::*pfun)()=test::Do;//成员函数指针 int test::*p=&test::x;//成员指针 ------解决方案-------------------- 指针是指向一些内存地址的变量,既可以是数据的地址也可以是函数

  • 指针变量赋值?该怎么解决

    指针变量赋值? <C++Primer>第四版 4.2.3 指针操作 1.生成左值的解引用操作 关键概念:给指针赋值或通过指针进行赋值 sp1=sp2;(图) -------------- 问题: 执行上面的语句后. 指针变量:sp1,指向s2. 指针变量:sp2,也指向s2. 它们都指向同一个对象. 对么? ------解决方案-------------------- 指向同一个对象.

最新文章
  • 求助,如何判断目前网络中的SSH、VPN是被管理员主动屏蔽的?

    在单位试过多个SSH和VPN帐户,均无法使用.VPN报错是800,将报错提示里的文件补齐(提示过缺少netcfg.hlp和Window.hlp两个文件),再测试也无法连接. 通过哪种办法可以知道单位网络中的VPN和SSH是被管理员封的? --cut-- wynemo在2012-02-16 15:58:5回答到: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17148 到这里下这个portqry.exe p

  • 农业局2014年终工作总结

    一年来,农业局在县委.县政府的正确领导下,在上级业务部门的支持与指导下,认真贯彻落实中央.省.市委农村工作会议精神,紧紧围绕年度责任目标和农业增效.农民增收这一中心,大力推广农业先进适用技术,广泛开展试验示范.优化农业生产结构,以实施农技推广体系改革与建设.高标准粮田建设.粮油高产创建.测土配方施肥.农村沼气建设等农业项目为契机,努力提高农业科技普及率和贡献率,真抓实干,开拓进取,各项工作均取得了新的成效. 一.粮食生产 我们始终按照"稳定面积.主攻单产.提高品质.增加总产"的指导思想

  • Foxmail中SSL连接错误怎么办 Foxmail中SSL连接错误怎么办

    这个错误该怎么解决呢?其实办法很简单. 1.在Foxmail右侧邮件账号列表中选择出错的邮箱,鼠标邮件点击,选择"属性".或者在菜单栏的"工具"选择"账号管理",然后选择相应的邮箱账号. 2.点击"高级"按钮,在高级设置中去掉POP3的"此服务器要求安全连接(SSL)"前面的勾选(如图). 3.点击确定按钮,然后重新收取邮件,是不是正常了? PS:不清楚这个问题产生的原因,因为以前我都是默认设置,都很正常.

  • LOL狮子狗大幅调整 设计师详谈改动背后 LOL狮子狗大幅调整 设计师详谈改动背后

    设计师Scarizard决定就狮子狗的技能和玩法的改动征求玩家的意见. 当然设计人员把改动的大方向作了一个限制,以下为设计方案: 以下改动为基础改动,还未放上任何实际数字比如伤害量或加成等,所有改动都在测试中: 基础属性: 生命成长增强,基础回血增强,成长回血增强 被动: 改动后将从现在的半空中可见变成跳跃瞬间可见 Q: 攻击速度加成移除(暂时性,计划为更换为其他附加效果) 满怒气Q: 伤害值下降,攻速加成保留但减弱,攻速加成效果时间延长 (楼主:这里应该少了一句攻击量和效果将根据英雄自身等级而

  • 马云纽约演讲:如果有选择我不会让阿里上市 马云纽约演讲:如果有选择我不会让阿里上市

    当地时间9日中午(北京时间10日凌晨),阿里巴巴创始人马云在纽约发表演讲,他表示非常尊重eBay和亚马逊,不过阿里巴巴的战略是帮助中小型企业在全球数字市场获得成功,并呼吁美国公司参与进来.马云在演讲中用篮球和乒乓球比较两种思想差异:美国打篮球很棒,帮助大企业:中国就要打乒乓球,帮助中小企业. 马云在演讲中还重申了5月7日自己致全体员工邮件中提出的未来五年公司愿景:五年内即2020年前,阿里巴巴将成为世界上第一个平台销售过一万亿美元的公司.当天,阿里巴巴集团公布2015年第一季度财报数据显示,中国

  • 早餐为什么要吃鸡蛋 早餐为什么要吃鸡蛋

    在营养早餐中少不了的就是鸡蛋,为什么鸡蛋要在早上吃呢?今天,就来告诉你鸡蛋应该在早上吃的原因.与此同时,再来为大家支支招,看看怎样挑选到优质的鸡蛋,快来一起看看吧. 本站阅读配图 早餐吃鸡蛋的7大原因 鸡蛋更耐饿 鸡蛋比面包.馒头.谷物片等更耐饿.其中的蛋白质和脂肪能为你持续平稳提供能量,让你肚子饱的时间更长. 鸡蛋帮助减肥 研究证明,早餐吃鸡蛋的人,比吃饼的人更容易减轻体重. 鸡蛋是蛋白质的绝佳来源 鸡蛋的蛋白质中含有人体的所有必需氨基酸,是最全面的蛋白质. 鸡蛋性价比高 与其他富含蛋白质的食

  • 约你APP美女总裁张含雪:打造现代女性安心约会 约你APP美女总裁张含雪:打造现代女性安心约会

    北京纯新女性社团DEARs创始人张含雪 8月18日上午消息,北京纯新女性社团DEARs创始人张含雪,气质80后美女总裁,2014年2月以董事副总裁的身份加盟领团科技,与"约你妹"品牌创始人王启亨共同打造领团科技旗下新热社交APP"约你".张含雪近日表示"约你"意在给女性提供一个安心的约会平台. 据透露,"约你"自推出以来受到了都市白领的热捧,尤其是女性白领.在谈到这款产品时,张含雪表示从"约你"立项的时候,

  • 小米4黑色预约官方网址是什么? 小米4黑色预约官方网址是什么?

    小米4黑色预约官方网址来咯~绿茶小编胖胖带来了小米4黑色版预约官网地址,很多机友都在苦苦等待黑色版本的小米4,而这款手机将在本月28日开启预订,详情如下哦. 雷军在微博公布了小米4移动4G黑色版的发售时间:10月28日,小米4移动4G黑色版将在小米官网首发,售价1999元. 小米4移动4G黑色版采用不锈钢金属边框,配备了5英寸1080p显示屏和高通骁龙801四核处理器,3GB RAM和16GB ROM,1300万像素主摄像头和800万像素前置摄像头,支持TDD-LTE网络,运行MIUI 6.

  • 如何能查到手机网站的访问量 如何能查到手机网站的访问量

    怎么能查到手机网站的访问量. 手机网站的访问量怎么查能查到呢,我用网上的一些查流量的方法,查wap.igou.cn这个网站一天才4000左右的IP,但是我看他们手机网站上的在线人数,基本没有低于1W个.是不是手机访问查不到流量? 只有32分了,,,给个整数30分,,多谢各位了 . 分享到: 更多 ------解决方案-------------------- 搜索 wap网站 流量统计. 也可以模仿写一个简单的流量统计.下载一次.+1.累加

  • Netfirms为您提供25M免费php空间

    Netfirms为您提供25M免费php空间,一个老牌的免费空间商,国外的,月流量限制在1G之内. 有强制广告,可以支持WEB和FTP两种管理方式,送二级米,如果你需要的话,还有送邮箱的. 申请地址:http://www.netfirms.com/web-hosting/web-hosting-basic/

热门推荐
  • 收安卓、 iPhone 、mac、黑苹果,用于开发测试 收安卓、 iPhone 、mac、黑苹果,用于开发测试 RT 收来做开发测试用. 便宜,能用就行! --cut-- andyhu在2014-04-30 15:24:0回答到: 第一版的moto milestone收吗?当初2xxx多的价格,两年以后就变200多了.. txx在2014-04-30 15:24:5回答到: 有一台iPhone 5 32G 港行銀色的 txx在2014-04-30 15:26:0回答到: @txx 重點是 iOS 6的系統. 當初大夥兒都升級7了,這台也保留在 iOS 6.如果想要做iPhone 5 iOS 6的測試,那就
  • 岁月不可回头,人生从未毕业 岁月不可回头,人生从未毕业 炎热的夏天,瞥到一群学生仔欢乐地放学.突然,回忆就像小鸭子一样扑腾扑腾地跳出来. 记得那一年,也是这个会让人热得绝望的季节,我从学校搬出来,三四个大学同学帮我一起拎着大箱小包,艰难地穿梭过那年拥挤的小巷子.后来,在那间狭小的出租屋里,我们都累瘫了.因为没有凳子,地上又太脏,只好坐在一摞摞的书上.而我印象最深刻的是那一碗三个人吃的面.当时都饿死了,却全都累得不想下楼去买吃的,最后竟然在我那堆行李中,找到一包不知何年何月买的方便面,就赶紧泡了,并且总共只有两双筷子,最后就三个人用了两双筷子吃了一碗面
  • 童话世界般五彩缤纷儿童房[组图二] 童话世界般五彩缤纷儿童房[组图二] screen.width-333)this.width=screen.width-333"> screen.width-333)this.width=screen.width-333"> screen.width-333)this.width=screen.width-333"> screen.width-333)this.width=screen.width-333"> screen.width-333)this.width=screen.
  • 年末最大一波促销战 买PPTV-55T旗舰电视最划算 年末最大一波促销战 买PPTV-55T旗舰电视最划算 2015年的最后一个月即将过半,年末又是家电市场的旺季,作为彩电行业新生力量代表的PPTV电视将借助双12掀起年末最大一波彩电促销战,此次促销方案将涵盖"嗨P日"的"五免"优惠并再加多重返现礼包,促销力度堪称PPTV电视年度之最,其中高端旗舰机型PPTV-55T迎来最佳购买时机. 据了解,PPTV电视已经抢先双12落户天猫商城,开辟除苏宁易购外另一大线上销售平台,PPTV电视在天猫平台首次亮相促销战,将最高让利700元,并附加两年免费会员权益.即刻登陆天猫PPTV官
  • AttachmentEncryptor可修复邮件附件加密漏洞 AttachmentEncryptor可修复邮件附件加密漏洞 越狱插件AttachmentEncryptor可修复邮件附件加密漏洞,Andreas Kurtz 在一份安全报告中指出,他在苹果的移动操作系统当中发现了一个邮件加密的新漏洞.目前著名的 Cydia 开发者 Petrich 已经放出了一个越狱插件用于修复邮件附件加密的 bug. 修复邮件附件加密漏洞最初是由安全专家 Andreas Kurtz 报告给苹果.他发现在访问iOS 7的文件系统时,竟然无需输入密码就能能够访问电子邮件附件.按理说,邮件的附件都应该由苹果的数据保护技术进行加密保护,包括对第
  • 儿童房装修要点 儿童房装修要点 儿童时期是一生中成长速度最快,也是最重要的阶段,针对不同成长时期的孩子,儿童房装修需求也有所不同.下面我们一起来了解下不同年龄段的儿童房要如何装修吧! 一.0-4岁儿童房 空间安全要注重 0-4岁的孩子,从婴儿阶段到开始学走路,开始独立完成一些事情,在孩子逐步独立的过程中,难免会跌跌撞撞,因此这一阶段的儿童房安全性显得十分重要. 1.地面装修安全为主 0-4岁的孩子正在学爬行和走路,地面是他们经常活动的区域,因此地面装修材料的挑选显得尤为重要.处于这个年龄段的孩子,儿童房地面材料建议选择脚感舒适