啊当 发表于 2013-2-4 23:00

问个C++的低级问题,求教!

编写了一个类A
又编写了另一个类B,类B包含类A
这个类B中有一个方法(比如叫方法C),是生成一个类A的vector

现在有一个类D
类D调用了类B的方法C以获得类A的vector

但是编译的时候由于交叉编译无法通过
请问一下类D的包含该怎么写,我这个结构设计的漏洞在哪

德米凯利斯 发表于 2013-2-4 23:03

唱五环歌吧

别射门射我脸上 发表于 2013-2-4 23:05

啊~~五环,你比四环多一环,啊~~五环,你比六环少一环

abu1985 发表于 2013-2-4 23:06

贴下你现在的定义看下啊

abu1985 发表于 2013-2-4 23:08

你的类A和类B是在2个头文件里边定义的吧,你试试在一个头文件里定义

abu1985 发表于 2013-2-4 23:11

哎,有一年没做C++开发了,生疏了啊

Neutrino 发表于 2013-2-4 23:41

D是包含 B 类 还是继承B?继承直接调用就行了,如果是包含最简单的就是声明一个公有变量

class A {
public:       
        A(){};
        virtual ~A(){};

};

class B{
public:
   B(){};
   virtual ~B(){};
   vector<A> foo(){//............};
};

class D {

        public:
                D(){};
                virtual ~D(){};
        public:
                B *b;
               
};

int main(void)
{
        D *d = new D();
        d->b = new B();
       
        vector<A> a = d->b->foo();
       
        delete d->b;
        delete d;
        return 0;
}

永无乡 发表于 2013-2-4 23:44

高端话题,屌丝插不上嘴。

AMD_GiYoM 发表于 2013-2-4 23:47

楼上的啥不乡还不撸一管睡觉?

永无乡 发表于 2013-2-5 01:00

AMD_GiYoM 发表于 2013-2-4 23:47
楼上的啥不乡还不撸一管睡觉?

屌丝还在搬砖会到处乱说?

牛clear 发表于 2013-2-5 08:46

简单,全写在一个文件就行了

stonyfield 发表于 2013-2-5 08:54

试试#ifndef

Mr.YY 发表于 2013-2-5 09:02

屌丝还在搬砖会到处乱说?
页: [1]
查看完整版本: 问个C++的低级问题,求教!