C++与java的区别.
来源:互联网 发布:中怡康家电市场数据 编辑:程序博客网 时间:2024/05/17 04:01
1. this.name= name, 变成了this->name=name;
#include <string>using namespace std;class Person {private:string name;public:void setName(string name) {//一个简单的javabean就变成了这样.//要用->而不是用.this->name = name;}string getname() {return name;}};
2.方法中传对象也是值传递.
#include <iostream>#include "Person.cpp"using namespace std;void setname_out(Person p);int main() {Person p;//这样就初始化了P. 还真有点不好理解.p.setName("zhangsan");cout << "111:" << p.getname() << endl;setname_out(p);cout << "333:" << p.getname() << endl;return 0;}void setname_out(Person p) {p.setName("lisi");cout << "222:" << p.getname() << endl;}/**结果打印为:111:zhangsan222:lisi333:zhangsan你看:传了一个对象也是值传递. */
3. 指针传递的是地址, 所以可以改变原值.--->忘了那本书说了, java中的引用传递就是用了指针.
void setname_out_pointer(Person *p){(*p).setName("lisi");cout<<"222:"<<(*p).getname()<<endl;}/**结果打印为:111:zhangsan222:lisi333:lisi */
4. C++中的引用不是java中的引用哦~, 它是变量的别名, 但是在函数传递这块也和直接传递变量不一样, 因为它可以改变原值.
为什么? 书曰: 引用作为函数参数, 这时函数并没有对形参对象初始化(就是说直接用变量传递对形参对象初始化了).
void setname_out_pointer(Person *p){(*p).setName("lisi");cout<<"222:"<<(*p).getname()<<endl;}/**结果打印为:111:zhangsan222:lisi333:lisi */
注意: 4.1 引用对象不是一个独立的对象,不单独战胜内存单元,所以传引用比传指针好
4.2 虽然系统向实参传递的是实参的地址而不是实参的值,但实参必须使用对象名.
- java与C的区别
- C与java的区别
- C与Java的区别
- 初学java java与C的区别
- C++与C的区别, C++ 与Java区别
- java与C区别
- Java与C及C++的区别
- Java与C/C++的区别
- java与c中数组的区别
- java与c,c++的区别
- Java与C/C++的区别
- C#与C++、JAVA的区别
- [zt] Java与C/C++的区别
- JAVA 中printf与c的区别
- JAVA与C/C++的区别
- Java与C语法上的区别
- Java与C/C++的区别
- java与c、c++的区别
- MyEclipse SVN插件的安装
- Java 自定义Annotation(元数据、注解)
- vsftpd用户修改密码
- linux 下oralce启动和关闭
- c和指针之转移表 demo
- C++与java的区别.
- EM算法
- Linux时间子系统
- Visual.Assist.X.V10.7.1936的Crack破解补丁.新增2项特性,修正20余处bug. 2013.04.22(Release)
- 不同类型的变量在内存中存储的详细情况
- html 标签
- java中静态代码块的用法 static用法详解
- Linux MTD&Nand Driver
- avast 8.0.1483 许可文件(杀毒软件免费激活)