javaer学c++: c++中的类

阅读更多

这个和java中的类类似, 仅仅是写法上有些区别, 以及类的默认特性上有些区别.

写法上的区别, 同时写出java和c++的类:

MyClass.java
public class MyClass
{
    private char mChar;
    private boolean mBool;
    private byte mByte;
    priavate short mShort;
    private int mInt;
    priavate long mLong;
    priavate float mFloat;
    priavate double mDouble;

    public MyClass() {
    }

    public MyClass(char c, boolean bool, byte b, short s, int i, long l, float f, double d) {
        mChar = c;
        mBool = bool;
        mByte = b;
        mShort = s;
        mInt = i;
        mLong = l;
        mFloat = f;
        mDouble =d;
    }

    // getter and setters就省略了

}

c++要分为类的声明和类的定义
Test.h
#ifndef TEST_H_
#define TEEST_H_

class Test
{
private: // 只需要写一个private, 下面的就全是private了
    char m_char;
    bool m_bool;
    char m_byte; // 用char来表示byte, 因为char在c++中也是占一个字节
    short m_short;
    int m_int;
    long m_long;
    float m_float;
    double m_double;

public: // 只需要写一个public, 下面的就全是public了
    Test();
    Test(char c, bool bl, char b, short s, int i, long l, float f, double d);

    // getter and setters
}

#endif

Test.cpp
Test::Test()
: m_char(0)
, m_bool(false)
, m_byte(0)
, m_short(0)
, m_int(0)
, m_long(0)
, m_float(0.0f)
, m_double(0.0)
{
}

Test::Test(char c, bool bl, char b, short s, int i, long l, float f, double d)
{
    m_char = c;
    m_bool = bl;
    m_byte = b;
    m_short = s;
    m_int = i;
    m_long = l;
    m_float = f;
    m_double = d;
}


void Test::setChar(char c)
{
    m_char = c;
}

char Test::getChar()
{
    return m_char;
}

// 其它getter and setters就省略了






默认特性上的区别:
(1)java的所有类默认都继承自Object, 而c++默认是不继承任何类
(2)java中默认会为所有的成员变量赋默认初值, 而c++不会, 必须通过初始化列表来手动初始化初值, 否则将是一个未定义的值
(3)java中的所有方法默认都是具有多态性的, 而c++中默认都是不具有多态性的



你可能感兴趣的:(class,类)