| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 873 人关注过本帖
标题:类的构造函数问题
只看楼主 加入收藏
周正己
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-9-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:11 
类的构造函数问题
刚开始学C++。老师让编一个工程要求,就是主函数输入1234让一个类去判断+—*/,如何再去调用另一个类去运算很简单。可我就是在这个构造函数上不知道怎么办求大神指导
搜索更多相关主题的帖子: 工程 如何 
2013-09-15 18:06
周正己
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-9-15
收藏
得分:0 
class B{
public:
    class A a;
    B(int o,int p){
    A(o,p);};
    void l(A a){
        
        a.sum();

    };
};
class A{
public:
    A(int o,int p){
        a=o;b=p;
    };
    void sum(){
        std::cout<<"sum is"<<"a+b"<<std::endl;
    };
private:
    int a,b;
};
#include<iostream>
#include "A.h"
#include "B.h"
using namespace std;
int main(){
    int o,p,r;
    B j;A a;
   
   
    cout<<"input o,p"<<endl;
    cin>>o;
    cin>>p;
    A(o,p);B(o,p);
    cout<<"input1+2-3*4/"<<endl;
    cin>>r;
    if (r=1)
        j.l(a);
    else return 0;
    system("pause");
    return 0;
}
我写的一部分程序,只搞加法了,不过程序是错的,构造函数不知道咋办
2013-09-15 18:09
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
收藏
得分:7 
。。。不是很明确。输入1234,什么意思?
2013-09-15 18:11
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
收藏
得分:0 
#ifndef __A_H__
#define __A_H__

class A{
public:
    A(int o,int p){
        a=o;b=p;
    };
    void sum(){
        std::cout<<"sum is"<<"a+b"<<std::endl;
    };
private:
    int a,b;
};

#endif    // __A_H__


#ifndef __B_H__
#define __B_H__

#include "a.h"

class B{
public:
    B(int o,int p) : a(o,p)
    {
        //A(o,p);
    }
    void l(A a){
        a.sum();
    }
private:
    A a;
};

#endif    // __B_H__

#include<iostream>
using namespace std;

#include "b.h"

int main(){
    int o,p,r;
    cout<<"input o,p"<<endl;
    cin>>o;
    cin>>p;
//     A(o,p);
//     B(o,p);
    B j(o,p);
    A a(o,p);
    cout<<"input1+2-3*4/"<<endl;
    cin>>r;
    if (r=1) {
        j.l(a);
    } else {
        return 0;
    }
    system("pause");
    return 0;
}
2013-09-15 18:41
周正己
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-9-15
收藏
得分:0 
1234对应着+-*/
用户只用输入1234选择加减乘除,然后就能计算出他想要的结果
2013-09-15 18:41
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
收藏
得分:0 
具体怎么实现,看各人思路,反正C++类中的自定义类型成员变量,要使用该成员变量的自定义构造函数来进行对象初始化,必须使用该类的初始化序列来完成。
例如,B类中的A类成员变量,要想使用A的自定义构造函数,就必须在B对象构造时,在B的初始化序列中对a进行。。。。
2013-09-15 18:55
周正己
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-9-15
收藏
得分:0 
回复 3楼 blueskiner
大神写的程序很厉害 不是俺这种初学者能写出来的呵呵,我都不知道那endif啥意思。我就是想用一个工程然后包括一个main,一个A.h,一个B.h,您这个思想和我一样,我就是不知道怎么用B这个类去调用A这个类。初学者呵呵
2013-09-15 18:57
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
收藏
得分:0 
testcpp.zip (2.95 KB)
read the fucking source code...
2013-09-15 19:01
can3981132
Rank: 2
等 级:论坛游民
帖 子:17
专家分:62
注 册:2010-3-31
收藏
得分:7 
什么意思没看懂

一条道路走到黑
2013-09-15 20:58
周正己
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-9-15
收藏
得分:0 
回复 7楼 周正己
class A{
public:
    A(int o,int p){
        a=o;b=p;
    };
    void sum(){
        std::cout<<"sum is"<<a+b<<std::endl;
    };
private:
    int a,b;
};
class B{
public:

    B(int o,int p):a(o,p){};
    void l(A a){
        
        a.sum();
    };
private:
    A a;

    };
#include<iostream>
#include"A.h"
#include "B.h"
using namespace std;
int main(){
    int o,p,r;
    //B j;A a;
   
   
    cout<<"input o,p"<<endl;
    cin>>o;
    cin>>p;
    B j(o,p);A a(o,p);
    cout<<"input1+2-3*4/"<<endl;
    cin>>r;
    if (r=1)
        j.l(a);
    else return 0;
    system("pause");
    return 0;
}
大神,我编出的程序也能执行,也不懂您给我的程序里那些复杂的语言是啥意思呵呵主要我是初学,请您看一下帮忙看我这样调用的对不对,我怕可能不是从B中调A,而是直接调A呵呵,麻烦您帮忙看一下
2013-09-15 21:17
快速回复:类的构造函数问题
数据加载中...
 
   



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

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