钻牛角尖的问题

陆远 2012-05-08 11:29:56

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

class Student
{
public:
Student(int n,int m):m_nData(n),m_nRef(m)//这里的引用成员的赋值对象
//怎么是一个常量,难道是引用传进来的副本吗?
//传进来的副本,不是在构造函数执行完成就没了吗?
{}
//换成下面这各就变成第一个参数不对了,不知道第二个是不是也对
Student(int &n,int &m):m_nData(n),m_nRef(n)
{}
void Get()const
{
//m_nData=1;//相当于this->m_nData;
//是this指针是const类型 还是this 所指向的对象是const
cout<<m_nData<<endl;
cout<<m_nRef;
}
private:
int m_nData;
int & m_nRef;
};

int _tmain(int argc, _TCHAR* argv[])
{
Student s(10,20);
s.Get();
//int &i=10;//error-->就是引用的常量必须是左值吗?
return 0;
}

1如果第一个引用的成员变量引用的是20的副本n这个变量,那它的作用域不是构造函数结束了,这个变量不存在了吗?因为不能返回局部变量的引用!如int & r=20;是错的,必须这样写的const int & r=20因为20 是const的!
2但是第二个构造函数第一个参数10和const int & r因为20 是const的一样,但是第二个是怎么样的
3今天的文档中
外部接口:描述系统与外部其他系统间的依赖关系。
内部接口:描述系统内部各功能模块间的依赖关系。
我想部下内部接口和外部接口是怎么理解的!
...全文
144 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
某大一菜鸟 2012-05-09
  • 打赏
  • 举报
回复
Student(int &n,int &m):m_nData(n),m_nRef(n)
{}

绑定操作不具有传递性...

外部接口是给外部调用的,内部接口可以理解为功能块的封装
例如在一个产生素数的类中,可以定义一个返回素数的外部接口,内部接口则可以是产生随机数模块,素数测试模块什么的...
patrick_880520 2012-05-09
  • 打赏
  • 举报
回复
1.构造函数没返回值,不存在返回局部对象引用的问题
2.看不懂想表达神马啊??
3.百度谷歌查一下被
W170532934 2012-05-09
  • 打赏
  • 举报
回复
其实我觉得基本内置数据类型完全没有必要搞成引用。
陆远 2012-05-08
  • 打赏
  • 举报
回复
我问这问题是不是有点乱啊?晕 大神求解释!
大家可以在vs2010上弄弄 也许会明白我的意思 谢谢了

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧