| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5048 人关注过本帖
标题:两个问题:1在类中调用另一个类对象,要不要值传递的问题 2有静态成员变量 ...
取消只看楼主 加入收藏
dqq123456
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
两个问题:1在类中调用另一个类对象,要不要值传递的问题 2有静态成员变量时,怎么用模板
#include <stdafx.h>
#include "iostream"
using namespace std;
第一个问题:在类中调用另一个类对象,要不要值传递的问题
class Point
{
public:
    Point(int xx=0,int yy=0){x=xx;y=yy;}
    Point(Point &p){x=p.x;y=p.y;}
    int GetX(){return x;}
    int GetY(){return y;}
private:
    int x,y;
};


class Distance
{
    Point p1,p2;
    float d;
public:
    Distance(){d=0;}
    Distance(Point &pp1,Point &pp2);
    float GetD(){return d;}
};

Distance::Distance(Point &pp1,Point &pp2):p1(pp1),p2(pp2)
{
    d=p1.GetX()-p2.GetX();
}

//Distance::Distance(Point &pp1,Point &pp2)
//{d=pp1.GetX()-pp2.GetX();}
//写成这样也能得到同样的结果。

//写成哪种更好?为什么?

int main()
{   
    Point p1(1,1),p2(2,2);
    Distance d2(p1,p2);
    cout<<d2.GetD()<<endl;
    return 0;
}
第二个问题:有静态成员变量时,怎么用模板
#include <stdafx.h>
#include "iostream"
using namespace std;

template <class T>
class Point
{
public:
    Point(T xx=0,T yy=0);
    T GetX(){return x;}
    T GetY(){return y;}
private:
    T x,y;
//    static int Num;
};
//int Point::Num=0;  
//不要这两句时,程序能运行。
//但是加上这两句后,
  //将int Point::Num=0;改为int Point<int>::Num=0;在模板T为int时能运行,
  //但T为float时(无论写成int Point<int>::Num=0;还是int Point<float>::Num=0;或者直接写int Point::Num=0;),程序都不能运行
//怎么解决?

template <class T>  
 Point<T>::Point(T xx,T yy)                  
{
    x=xx;y=yy;   
}



int main()
{   
    Point<float> p1(1,2);
    cout<<"("<<p1.GetX()<<","<<p1.GetY()<<")"<<endl;
    return 0;
}

我是新手,请教各位了~~
搜索更多相关主题的帖子: 变量 静态 模板 成员 对象 
2010-07-27 18:46
dqq123456
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-27
收藏
得分:0 
谢谢两位~~
第二个问题弄清楚了
但第一个问题还有点不懂:p1,p2是里面的成员,一定要初始化么
2010-07-28 23:18
dqq123456
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-27
收藏
得分:0 
恩,懂了,太感谢了
2010-07-30 11:06
快速回复:两个问题:1在类中调用另一个类对象,要不要值传递的问题 2有静态成员 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015800 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved