研究问题:
- 学的越多越容易打岔,这时候有必要对比一下细微差别!
以下是C/C++/visual basic/java等语法差别!!
要点:
- C/C++/java语言严格区分大小写,VB不区分大小写
- C语言中没有特定的字符串类型,而C++/java中有string字符串数据类型。
java中nextLine()即输入字符串,而next()是输入字符(不包括空格,table……) - C系统对指针变量赋值时要给以确定的地址。
- java会主动释放垃圾内存,C/C++必须手动释放。
- C++/java 构造函数会在创建对象时自动调用!!(注意函数重载时的参数列表!!)
- 分号问题:C/java中反大括号之后,不可加分号;C++中除了普通函数,成员函数的函数体反大括号之后无需分号之外,其他都要分号结尾!!
- C中指针悬空为NULL;C++中指针悬空为NULL/0
- C++继承时默认为private;如:class B:A{……};
- 动态分配:C,指针用malloc;C++,指针用new;java,任意变量用new
- C++中用友元函数访问私有成员变量,java中用setter/getter访问私有成员
- C语言中形参没有引用传递!!
- C中字符串的输出? —1>用指向字符数组的指针 2>用字符数组一个一个打印
- C++中一个浮点型若是小数部分为0,直接输出必然是不带小数点的整型。
C中输出的数据类型取决于%d/%ld/%f/%lf/%I64d,以及定点小数类型%m.nf
C++中定点小树类型要使用头文件”iomanip”,如:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
float a=0.1;
cout.setf(ios::fixed);
cout<<setprecision(2)<<a<<endl;//输出0.10
cout.unsetf(ios::fixed);
cout<<setprecision(2)<<a<<endl; //输出0.1
}
cout.setf(ios::fixed)——用定点格式显示浮点数;
cout.setf(ios::showpoint)——显示浮点数小数点后的0;
cout.precision(2)——设置精确度为2位并返回上一次的设置。
- C语言—弱类型语言,C++—强类型语言
在const用法上,C中不可用const常量创建数组;在C++中可以。 - C++支持多继承,而java不可这样做(使用接口代替)或使用多层继承。
- Java中
‘*’:表示字符;
“**…”表示字符串
- Java与C++对比继承与多态
对类继承的差异
http://www.cnblogs.com/devilmaycry812839668/p/6358477.html
由于编译器的缘故,java中继承时子类可以附加成员(变量或方法),但只能用自己的类去new对象;除非是多态时:父类 对象名=new 子类名()时,子类中含有的方法在父类中必须有,而父类中含有的方法在子类中可有可无(没有时new对象到父类查找)。
C++中继承可通过子类对象访问父类成员(子类对象名.父类名::父类成员),遵循先构造后析构的原则。
C++:class C:访问权限符 A,访问权限符 B{ }