欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-13 20:01:57
...
[size=medium]
这个和java中的类类似, 仅仅是写法上有些区别, 以及类的默认特性上有些区别.

写法上的区别, 同时写出java和c++的类:
[/size]
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就省略了

}

[size=medium]c++要分为类的声明和类的定义[/size]
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就省略了




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