namespace pairDemo{
template<typename L, typename R>
class pair{
public:
pair(const L& left,const R& right)
:lft(left),rht(right)
{
}
pair(const pair<L,R>& p)
:lft(p.lft),rht(p.rht)
{
}
L left() const{
return lft;
}
R right() const{
return rht;
}
void left(const L& left){
lft = left;
}
void right(const R& right){
rht = right;
}
private:
L lft;
R rht;
};
}
// ------------------------------------------- --------关键字“const”如何工作?
#include "pairTemp.h"
#include <iostream>
using namespace std;
pairDemo::pair<int, double> func(int x, double y){
pairDemo::pair<int, double> temp(x*2, x+y);
return temp;
}
int main(){
int x = 2; double y = 3.55;
pairDemo::pair<int, double> myPair = func(x,y);
cout << myPair.left() << myPair.right();
}
我有一个问题,构造函数的参数,如果我不宣布“常量”,函数func()将有一个错误。我不知道为什么,任何人都可以帮助我。
如果你没有声明什么'const'?你得到的错误是...? – 2012-02-24 21:59:38
你不在哪里声明const,什么是错误,以及错误是哪一行? – 2012-02-24 22:00:11
构造函数参数中的“const”。如果我没有delcare,func()会有一个错误,它不能将int转换为int&。现在我知道临时应该使用const了。 – titus 2012-02-24 22:42:47