注册 登录
编程论坛 C++教室

调试程序出现问题,请指点迷津

chenzekai 发布于 2010-04-12 16:11, 778 次点击
#include <iostream.h>
class X
{
    int m_ivar;
public:
    X(int i)
    {m_ivar=i;
    cout<<"m_ivar的值是:"<<endl;}
    X(const X &Other)
    {m_ivar=Other.m_ivar;
    cout<<"m_ivar的值是:"<<endl;}

    X func(X x)
    {
        return x;
    }
   
    void print()
    {cout<<"m_ivar="<<m_ivar<<endl;}
};

void main()
{
    X x1(1);
    x1.print();
    X x2(x1);
    x2.print();
    X x3=x2;
    x3.print();
    X x4(2);
    X x5=func(x4);
}

调试时出现error C2065: 'func' : undeclared identifier

我不知道怎么改
10 回复
#2
秀痘魔导士2010-04-12 16:17
程序代码:
#include <iostream.h>
class X
{
    int m_ivar;
public:
    X(){};
    X(int i)
    {m_ivar=i;
    cout<<"m_ivar的值是:"<<endl;}
    X(const X &Other)
    {m_ivar=Other.m_ivar;
    cout<<"m_ivar的值是:"<<endl;}

    X func(X x)
    {
        return x;
    }

    void print()
    {cout<<"m_ivar="<<m_ivar<<endl;}
};

void main()
{
    X x1(1);
    x1.print();
    X x2(x1);
    x2.print();
    X x3=x2;
    x3.print();
    X x4(2);
    X x5;
    x5.func(x4);
}
#3
yyblackyy2010-04-12 17:55
X x5=func(x4);
 x5.func(x4);
#4
hblikun2010-04-12 19:36
楼上正解,注意语法格式
#5
chenzekai2010-04-12 20:33
我是照书写的,我还有疑问,就是为什么要添加 X(){};
#6
chenzekai2010-04-12 20:35
还有书里直接就

X x5=func(x4);

跟X x5;
  x5.func(x4);
比这样错在哪里
#7
yyblackyy2010-04-12 23:06
X(){}可用可无的 但没有时就要初始化了  X a(4)。。。。。 若写成 X a 的形式的话编译器就会提示没有合适的默认构函数了
X x5=func(x4)   func(x4)是类成员函数,调用的方法是对象的实例或也类本身   但现在没有东东去调用他当然错了
#8
MyStar2010-04-12 23:56
试试用其他对象引用!!!!
#9
kehuadong2010-04-13 00:24
func是X的成员函数,不能直接,要通过对象调用
#10
南国利剑2010-04-14 13:16
改成这样就可以了。
代码如下:

#include <iostream>
using namespace std;


class X
{
    int m_ivar;  //私有成员
public:
    X(int i)
    {m_ivar=i;}

    X(const X &Other)        //常引用
    {m_ivar=Other.m_ivar;
    cout<<"m_ivar的值是:"<<m_ivar<<endl;}

    X func(X x)
    {
        return x;
    }
   
    void print()
    {cout<<"m_ivar="<<m_ivar<<endl;}

};

void main()
{
    X x1(1);
    x1.print();
    X x2(x1);
    x2.print();
    X x3=x2;
    x3.print();
    X x4(2);
    X x5=x4.func(x4);
    x5.print();
}
#11
debroa7232010-04-14 20:32
你可以给出书的作者发一个勘误。
1