C++ 类初探

感悟:

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值