[C++]C++Pointers to classes 类指针 new 与object的对比
来源:互联网 发布:淘宝优惠券代码生成 编辑:程序博客网 时间:2024/05/01 01:36
Code
#include <iostream>using namespace std;class C { int one, two; public: C(int x, int y) : one(x), two(y) {} int sum(void) { return one + two; }};int main(){ int a = 1, b = 2; int *pa = &a; int *pb = &b; cout << "simple int pointer : "; cout << "a + b = " << (*pa + *pb) << endl; C c(3,4); cout << "[C c ] is same as [int a ] [Type t] : "; cout << "c.sum() = " << c.sum() << endl; C *pc; pc = &c; cout << "pc->sum() equals to (*pc).sum() : " << endl; cout << "pc->sum() = " << pc->sum() << endl; cout << "(*pc).sum() = " << (*pc).sum() << endl; C *pc_n; pc_n = new C (5,6); cout << "pc_n = new C( 5, 6) : " << endl; cout << "pc_n->sum() = " << pc_n->sum() << endl; pc = nullptr; delete pc; delete pc_n; return 0; }
Run
simple int pointer : a + b = 3[C c ] is same as [int a ] [Type t] : c.sum() = 7pc->sum() equals to (*pc).sum() :pc->sum() = 7(*pc).sum() = 7pc_n = new C( 5, 6) :pc_n->sum() = 11
Note
构造函数
C(int x, int y) : one(x), two(y) {}
- class C的构造函数,接受两个整型的参量
对象创建
C c(3,4);
- 创建一个class C的对象c,接受整数3以及整数4作为构造函数的参数
方法调用
cout << "c.sum() = " << c.sum() << endl;Screen Output : c.sum() = 7
- 很自然地就可以使用
c.sum()
调用类中的函数
类指针
C *pc;pc = &c; // C c(3,4);
- 创建一个类的指针 取名为pc 本质就是
Type *t
,Class 也是一种Type,那么自然可以对c
进行取出地址的操作&
,并将其值赋予pc
cout << "pc->sum() = " << pc->sum() << endl; cout << "(*pc).sum() = " << (*pc).sum() << endl;Screen Output: pc->sum() = 7 (*pc).sum() = 7
pc->sum()
以及(*pc).sum()
是两种等价的写法
new的用法
C *pc_n;pc_n = new C (5,6);
pc_n
仍旧是一个类指针,但是被赋值为new C (5,6)
Java vs C++
// java codeC c = new C(5,6);// java code// C++ codeC c(5,6);orC *pc;pc = new C(5,6);orC *pc;C c;pc = &c;// C++ code
java
和C++
的写法做一下区分记忆
Reference
[1] classes/Pointers to classes
http://www.cplusplus.com/doc/tutorial/classes/
[2] Comparison of Java and C++
https://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B
0 0
- [C++]C++Pointers to classes 类指针 new 与object的对比
- C与Object-c的简单对比
- Thinking in C++: Pointers to members 指向成员的指针
- [C++]C++ Pointers to functions 函数指针
- [ios]Object-C与C对比
- 指针的指针(pointers to pointers)
- object-C与JAVA和C++对比
- C++&JAVA指针的对比
- object-c 指向指针的指针
- C指针学习(Pointers in C)
- 【学习C++】学习C++ -> 类(Classes)的定义与实现
- C++new与delete以及空指针
- Delphi与C中的指针对比
- C语言数组与指针对比
- Pointers to Class Members Are Not Pointers(指向类成员函数的“指针”并非指针)
- Item07. 常量与指针的联姻(Const Pointers and Pointers to Const)
- C++:类与对象入门 Intro to Class and Object
- [C++] c++ new() 与new[]的区别
- 仿UC里面Viewpager的Parallax效果
- 使用wait和notify实现间隔打印
- 极大极小搜索算法
- python中的除法
- 直接拿来用!10款实用Android UI工具
- [C++]C++Pointers to classes 类指针 new 与object的对比
- Scroller类和进化版的拖动辅助类ViewDragHelper的一点理解
- iOS--响应者链条
- Android 双守护进程的实现包含5.0以上,转载一个大神的实现
- android - Webview嵌套于ScrollView页面有空白
- linux下实时查看tomcat运行日志
- redis接入sentinelPool的配置
- linux基础篇读书笔记2_后台执行命令
- 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。