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

指针初始化

zjdxsunyan 发布于 2011-04-13 14:42, 826 次点击
#include<iostream>
using namespace std;

class point
    {
        private:
        int x,y;
        public:
        void setpoint(int a,int b)
        {
            x=a;y=b;
        }   
        int getx()
        {
            return x;
        }
        int gety()
        {
            return y;   
        }   
    };

    int main()
    {

        point *op;
        op->setpoint(1,2);
        cout<<op->getx()<<endl;
        return 0;

    }
为啥不能运行呢?
另外“->”运算符号,与“.”运算符有什么区别?
6 回复
#2
yuccn2011-04-13 15:42
point *op; 这个你申明的是一个指针,还不是一个对象,当然会出现内存错误

int main()
{

        point *op = new point;  // 或者 point PointA; point *op = &PointA;
        op->setpoint(1,2);
        cout<<op->getx()<<endl;
        delete op;
        op = NULL;
        return 0;
}
这样就行了。


#3
yuccn2011-04-13 15:43
"另外“->”运算符号,与“.”运算符有什么区别? "
简单的说,->用于指针;.用于对象
#4
ucyan2011-04-13 16:58
(*ip).对象 = ip->对象
#5
zjdxsunyan2011-04-13 18:15
恩,果然很强大,小子我领教了!哈哈哈。
#6
sunkaidong2011-04-13 18:47
做C要一直记得你是在操作内存,特别是地址,指针,链表等。
#7
zjdxsunyan2011-04-13 19:13
恩,谢谢你的经验!我会记得!
1