C++ 类初探

来源:互联网 发布:网上点餐软件 编辑:程序博客网 时间:2024/06/16 07:30

感悟:

C++:无非是C 的语法特性 与 C++的类语法相结合,支持面向对象和面向过程的混合。

当然,C++的 STL 库,以及包括容器等内容,是扩充的,需要慢慢来熟悉。


代码:

#include<iostream>#include<stdlib.h>using namespace std;struct ListNode {        int val;        struct ListNode * next;};class Solution {public:        struct ListNode * sortList(struct ListNode * head) {                 cout << "x = " << head->val << endl;        }        Solution(int X) {                x = X;        }        int getX() {                cout << x << endl;        }private:        int x;};int main() {        Solution S(10);        struct ListNode* M;        M = (struct ListNode *)malloc(sizeof(struct ListNode));        M->val = 100;        M->next = NULL;        S.sortList(M);        S.getX();        return 0;}

过程感想:

1. C++ 的类,无非就是在C的基础上,封装成了 Java 中类的变体。(当然,语言特性不一样,语法区别很大)

2. 和Java 类的初始化相比,不需要 new,直接 S(10) 就够了。(但是不确定,有堆地址分配的情况,没有尝试)

3. C++ 中的 this 与java中的不一样(是const的,我猜想它是类属性,而非对象的属性)。


gcc编译过程中,报错:

hello.cpp:(.text+0xd1): undefined reference to `std::cout'
hello.o: In function `__static_initialization_and_destruction_0(int,int)':
hello.cpp:(.text+0x19e): undefined reference to `std::ios_base::Init::Init()'
hello.cpp:(.text+0x1a3): undefined reference to `std::ios_base::Init::~Init()'

后参照文章:http://www.cnblogs.com/chinazhangjie/archive/2011/05/23/2054598.html

用 g++ 编译,问题解决。



0 0
原创粉丝点击