从新创建的对象指针正确调用方法
Correctly Call a Method From Newly Created Object Pointer
我是一名Java程序员,正在上C++课。我可以在堆栈上成功创建我的对象,而无需使用"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*"
使用对象指针调用方法的语法是什么?
使用运算符 ->
与.
(点)一起,它是所谓的类成员访问运算符。
例如
SeatSelection *premium = new SeatSelection(1,5);
premium->toString();
或者你可以写
SeatSelection *premium = new SeatSelection(1,5);
( *premium ).toString();
根据C++标准
表达式 E1->E2 转换为等效形式 (*(E1))。E2;
C++无论何时使用new
,您都会在堆上创建一个对象并获取指向该对象的指针作为回报。
在C++有两种方法可以尊重指针。
1)使用星号如(*premium)
,然后使用点运算符调用该类上的函数(即 (*premium).toString();
)。
2)按照其他示例中的建议使用箭头->
运算符,它一举合并了星号和点的功能,并"看起来更漂亮"(即 premium->toString();
)。
别忘了 C++
不像Java
那样被垃圾回收,所以当你new
一个类时,你必须有一个匹配的delete
,否则你会出血记忆。
相关文章:
- 为什么使用 "this" 指针调用派生成员函数?
- 当使用通配符和null指针调用函数时,对输出的说明
- Visual c ++,使用字符串引用/指针调用 dll 函数
- 使用基类指针调用基类的值构造函数的语法是什么?
- 是否可以使用函数指针调用虚拟析构函数?
- 使用C++指针调用 python 函数
- 如何使用接口指针调用方法,该指针是其具体类的一部分,而不是接口的一部分
- 是否可以使用非常量指针调用非常量函数,以及当两个unique_ptrs指向同一个对象时程序的行为方式?
- 在将派生类指针类型转换为派生类指针后,从基类指针调用派生类函数
- 通过指针调用模板类成员函数 [为什么这是有效的 c++]?
- 从带有参数的基函数指针调用基方法
- 使用唯一指针调用函数会使我的程序崩溃
- C++::在构造函数退出之前通过指针调用成员函数
- 有没有办法在没有虚拟的情况下使用基类指针调用派生类函数
- 什么时候用指针调用C++类构造函数
- C++ - 使用变量指针调用函数
- 为什么我可以通过野生指针调用成员函数
- 从指针调用方法时出现分段错误
- 为什么使用指向函数的指针调用虚函数时不需要指针"this"?
- C++ abort() 在函数内的抽象类对象指针调用上