c++类和java类使用的差异


如下java和c++ 类代码示例,c++类和java类使用的差异主要包括:
1.c++ 类中static全局变量必须声明const才可以赋值。
    在java类中全局镜头变量,可以声明final, 也可以不声明。
2.c++ 的函数声明在类内部,c++ 的函数定义在类的外部;
如果 不定义2.1函数声明和2.2外部函数定义;也可以直接在类里面定义函数2.3。
java 只要在类内部定义即可。
3.c++ 类定义结束;结尾
4.c++ 类初始化对象my方式 和java不同。java初始化对象需要new 类对象。c++ 可以直接使用类名创建对象和 使用 new 关键字创建对象,用完需要delete删除对象
5.c++ 类 中静态变量访问 符号不同,c++使用::,JAVA使用.

6.c++ 类  继承使用: public 父类,其中public 是用来修饰每个基类。JAVA使用extends 父类

7.c++  const int顺序可颠倒,int const也可以。JAVA只可以用final  int 修饰,顺序不能颠倒。

8.c++冒号的作用:8.1 构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型,例如:
struct _XXX{
_XXX() : y(0xc0) {}
};
8.2 类名冒号后面的是用来定义类的继承。例如: class 派生类名 : 继承方式 基类名

9.typedef typename 作用,例如:typedef typename std::vector<T>::size_type size_type;
typedef创建了存在类型的别名,而typename告诉编译器std::vector<T>::size_type是一个类型而不是一个成员

----------java类代码示例

public class MyClass {
    public static final int length = 20;   // 1在java类中全局镜头变量,可以声明final, 也可以不声明。
    public int age = 10;

    double get() {
        return 1;
    }

    int main() {
        MyClass my = new MyClass();
        my.get();
        Log.i("MyClass","length:"+MyClass.length);
        Log.i("MyClass","age:"+my.age);
        return 0;
    }
}

//继承使用
	// 基类
    class Animal {
        // eat() 函数
        // sleep() 函数
    };
    class Dog extends Animal {
        // bark() 函数
    };

----------c++类代码示例

#include <iostream>
using namespace std;
class MyClass {
public:
    static const int length = 20;   //1.c++ 类中static全局变量必须声明const才可以赋值,
    double get(void); //2.1 c++ 的函数声明在类内部

	//double get(int aa) { 2.3 如果 不定义2.1函数声明和2.2外部函数定义;也可以直接在类里面定义函数
	//	return 1;
	//}
//private:
    int age = 10;
}; //3.c++ 类定义结束;结尾
double MyClass::get(void) //2.2 c++ 的函数定义在类的外部
{
    return 1;
}
//int MyClass::length = 30;
int main()
{
    MyClass my; //4.c++ 类初始化对象my方式 和java不同,也可以new 类初始化,用完需要delete删除对象
	MyClass * my2 = new MyClass();
    my.get();
    //5.c++ 类 中静态遍量访问 符号不同
    cout << "length: "<< MyClass::length <<std::endl;
    cout << "age: "<< my.age <<std::endl;
	cout << "age2: "<< my2->age <<std::endl;
 	if (NULL != my2)
    {
        // 使用delete删除对象
        delete my2;
        my2 = NULL;
    }

    return 0;
}
 
//继承使用
// 基类
class Animal {
    // eat() 函数
    // sleep() 函数
};
 
 
//派生类
class Dog : public Animal {
    // bark() 函数
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值