且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

C ++类对象指针和访问成员函数

更新时间:2023-02-09 14:53:39

The * symbol is used to define a pointer and to dereference a pointer. For example, if I wanted to create a pointer to an int, I could do:

int *ptr;

In this example, the * is being used to declare that this is a pointer to an int. Now, when you are not declaring a pointer and you use the * symbol with an already declared pointer, then you are dereferencing it. As you probably know, a pointer is simply an address. When you dereference a pointer, you are obtaining the value that is being pointed to by that address. For example:

int pointToMe = 5;
int *ptr = &pointToMe;
std::cout << *ptr;

This will print out 5. Also, if you are assigning a pointer to a new address and it's not in the declaration, you do not use the * symbol. So:

int pointToMe = 5;
int *ptr;
ptr = &pointToMe;

is how you would do it. You can also deference the pointer to assign a new value to the value being pointed to by the address. Such as:

int pointToMe = 5;
int *ptr = &pointToMe;
std::cout << *ptr; // Prints out 5
*ptr = 27;
std::cout << *ptr; // Prints out 27

Now, -> acts like the deference symbol. It will dereference the pointer and then use the member functions and variables as if you had used . with a non-pointer object. Even with an object that is not a pointer you can use the -> by first getting the address:

CObj object;
(&object)->MemberFunction();

That's just a brief overview of pointers, hope it helps.

相关阅读

技术问答最新文章