我是一名参加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*"
使用对象指针调用方法的语法是什么?
答案 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
,否则您将成为出血记忆。