从新创建的对象指针正确调用方法

时间:2014-02-18 23:10:39

标签: c++ oop syntax

我是一名参加C ++课程的Java程序员。我可以通过不使用“new”关键字在堆栈上成功创建我的对象。

SeatSelection premium(1,5);
premium.toString();

该代码正确运行我的toString()方法。

我也尝试使用“new”关键字创建一个新的C ++对象,然后尝试运行toString()方法。

SeatSelection *premium = new SeatSelection(1,5);

我不知道调用toString()方法的正确语法。

我尝试了什么

premium.toString();     //doesn't compile, premium is of non-class type "SeatSelection*"

使用对象指针调用方法的语法是什么?

2 个答案:

答案 0 :(得分:1)

使用operator ->.(点)一起,它就是所谓的类成员访问运算符。

例如

SeatSelection *premium = new SeatSelection(1,5);
premium->toString();

或者你可以写

SeatSelection *premium = new SeatSelection(1,5);
( *premium ).toString();

根据C ++标准

  

表达E1-> E2转换为等同形式(*(E1))。E2;

答案 1 :(得分:1)

在C ++中,只要你使用new,就会在堆上创建一个对象并获得一个指向该对象的指针。

在C ++中,有两种方法可以使用指针。

1)使用(*premium)中的星号,然后使用点运算符调用该类的函数(即(*premium).toString();)。

2)按照其他示例中的建议使用箭头->运算符,它一举合并星号和点的功能,“看起来更漂亮”(即premium->toString();)。

不要忘记 C++ NOT 垃圾收集方式与Java一样,所以当您new上课时,您必须拥有匹配的delete,否则您将成为出血记忆。