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