vue元件的駝峰式命名與短橫線分割命名
阿新 • • 發佈:2020-09-21
在我們討論 “Java中引數傳遞的型別” 這個問題之前,我們首先需要對引數傳遞的型別做一些瞭解。
眾所周知,Java語言的許多概念是傳承自C++的,因此我們需要先對C++的引數傳遞型別做一些瞭解。C++中引數的傳遞有三種,分別是:
1、傳值
具體操作:在呼叫函式/方法時,會建立形參列表中的相應物件,並將實參的各項值,複製給新建立的形參。
下面貼一段程式碼,並進行分析:
#include <iostream> using namespace std; //成績類:內含語、數、英 三科成績 class Score{ public: double chinese;double math; double english; //構造方法 Score(){} Score(double chinese,double math,double english){ this->chinese = chinese; this->math = math; this->english = english; } }; //學生類:內含年齡、成績 class Student{ public: //建構函式 Student(int age,Score score){this->age = age; this->score = score; } void setAge(int age){ this->age = age; } void setScore(Score score){ this->score = score; } //資訊概覽 void show(){ cout<<"該生今年"<<age<<"歲,語數英三科分別為"<<score.chinese<<"- "<<score.math<<" - "<<score.english<<endl; } private: int age; Score score; }; void changeStudent(Student student){ student.setAge(99); } int main() { //建立一個學生 Score score(88,90,95); Student student(17,score); //展示學生資訊 student.show(); //呼叫修改函式 changeStudent(student); //再次展示學生資訊 student.show(); return 0; }
從執行結果可以看到,兩次show()展示的資訊是一樣的。 這是因為在呼叫changeStudent()函式時,傳的是值 changeStudent()函式會新建立一個形參物件,然後把實參的各個屬性拷貝到形參中。
(如果在changeStudent函式的頭部和底部分別呼叫student.show方法,就會發現函式內的student的值確實修改了,不過這個student是changeStudent函式臨時建立的,與主函式中的student除了值相同,沒有一分錢的關係,他們的地址並不相同 —— 換言之,他們並不是一個物件 這個臨時建立的student會在函式執行完後,自動銷燬)
2、傳指標
具體操作:在呼叫函式/方法時,會建立一個形參指標,並將實參指標的地址,拷貝給實參指標。 (看描述就可以看出來,傳指標其實就是傳值)
#include <iostream> using namespace std; //成績類:內含語、數、英 三科成績 class Score{ public: double chinese; double math; double english; //構造方法 Score(){} Score(double chinese,double math,double english){ this->chinese = chinese; this->math = math; this->english = english; } }; //學生類:內含年齡、成績 class Student{ public: //建構函式 Student(int age,Score score){ this->age = age; this->score = score; } void setAge(int age){ this->age = age; } void setScore(Score score){ this->score = score; } //資訊概覽 void show(){ cout<<"該生今年"<<age<<"歲,語數英三科分別為"<<score.chinese<<" - "<<score.math<<" - "<<score.english<<endl; } private: int age; Score score; }; void changeStudent(Student *pStudent){ pStudent->setAge(99); } int main() { //建立一個學生 Score score(88,90,95); Student student(17,score); //建立一個指標
Student *pStudent = &student; //展示學生資訊 student.show(); //呼叫修改函式 changeStudent(pStudent); //再次展示學生資訊 student.show(); return 0; }
3、傳引用
首先,比較確定的點就是