注册 登录
编程论坛 C++ Builder

c++程序为何编译不过?

David_o 发布于 2012-02-23 23:39, 737 次点击
程序代码:
#include <iostream>
using namespace std;

class test{
public:
    void print()
    {
        cout<<"health tooth"<<endl;
    }
};

class obj:public test{
public:
    void print()
    {
        cout<<"bad tooth"<<endl;
    }

};

int main()
{
    test* point= &obj;
    (obj*)point->print();
}
6 回复
#2
只要半杯水2012-02-24 23:30
指针没有开辟空间??
#3
mayuebo2012-02-28 08:15
对象没有实例化,先定义两个变量,然后再设置指针
test t;
obj o;

test * point=&o
#4
CooperOne2012-02-29 21:06
同LS和LSS
都是一个意思

#5
C_戴忠意2012-03-20 12:59
以下是引用mayuebo在2012-2-28 08:15:58的发言:

对象没有实例化,先定义两个变量,然后再设置指针
test t;
obj o;

test * point=&o

顶顶
#6
Caesoiar2012-03-21 09:10
不需要test t这一句吧? 只需要下面两句即可。
#7
lxqlyld2012-06-19 15:59
我编译了一下,发现了两个问题:1、类型不能直接取地址,类型对象可以,所以应该先定义类型对象(名字随便)obj myarray;2、函数print()要有返回值,不能是void的。我改了一下,编译通过
class test{
public:
    int print()
    {
        cout<<"health tooth"<<endl;
        return 1;
    }
};

class obj:public test{
public:
    int print()
    {
        cout<<"bad tooth"<<endl;
        return 1;
    }

};

int main()
{
    obj myarray;
    test* point= &myarray;
    (obj*)point->print();
}
兄弟是初学者,如果说的不对,请别见怪,笑笑得了
1