首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

钻牛角尖的有关问题

2012-05-10 
钻牛角尖的问题#include stdafx.h#include iostreamusing namespace stdclass Student{public:Studen

钻牛角尖的问题

#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今天的文档中 
外部接口:描述系统与外部其他系统间的依赖关系。
内部接口:描述系统内部各功能模块间的依赖关系。
我想部下内部接口和外部接口是怎么理解的!

[解决办法]
Student(int &n,int &m):m_nData(n),m_nRef(n)
{}

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

外部接口是给外部调用的,内部接口可以理解为功能块的封装
例如在一个产生素数的类中,可以定义一个返回素数的外部接口,内部接口则可以是产生随机数模块,素数测试模块什么的...
[解决办法]
其实我觉得基本内置数据类型完全没有必要搞成引用。
[解决办法]
1.构造函数没返回值,不存在返回局部对象引用的问题
2.看不懂想表达神马啊??
3.百度谷歌查一下被

热点排行