C++ 学习记录1

来源:互联网 发布:台式电脑怎么连网络 编辑:程序博客网 时间:2024/05/16 09:17

C++中定义个Class   Student{ public:  age;};  

1. 创建对象时,   Student    Stu;   则视为创建了一个  Student 型的变量 Stu。 访问类中的成员使用 Stu.age = 1; 

也可以创建指针型。Student * st = &Stu;    这种创建的对象存储在栈中。

2.若在堆中创建则用 Student   *Stu = new  Student. 成员访问用  Stu->age = 1;    和结构体的访问相似。

//------------------------------------------------------------------------------------------------------------------------------------------------

成员变量大都以m_开头,这是约定成俗的写法,不是语法规定的内容。以m_开头既可以一眼看出这是成员变量,又可以和成员函数中的形参名字区分开。

这种将成员变量声明为 private、将部分成员函数声明为 public 的做法体现了类的封装性。所谓封装,是指尽量隐藏类的内部实现,只向用户提供有用的成员函数。

声明为 private 的成员和声明为 public 的成员的次序任意,既可以先出现 private 部分,也可以先出现 public 部分。如果既不写 private 也不写 public,就默认为 private。

构造函数:

  1. classStudent{
  2. private:
  3. char *m_name;
  4. int m_age;
  5. float m_score;
  6. public:
  7. //声明构造函数
  8. Student(char*name,int age,float score);
  9. //声明普通成员函数
  10. void show();
  11. };
  12. //定义构造函数
  13. Student::Student(char*name,int age,float score){
  14. m_name = name;
  15. m_age = age;
  16. m_score = score;
  17. }
 
  1. int main(){
  2. //创建对象时向构造函数传参
  3. Student stu("小明",15,92.5f);
  4. stu.show();
  5. //创建对象时向构造函数传参
  6. Student *pstu=newStudent("李华",16,96);
  7. pstu -> show();
  8. return0;
  9. }
  10. 构造函数的调用是强制性的,一旦在类中定义了构造函数,那么创建对象时就一定要调用,不调用是错误的。如果有多个重载的构造函数,那么创建对象时提供的实参必须和其中的一个构造函数匹配;反过来说,创建对象时只有一个构造函数会被调用
理解:那么可以理解 创建一个类Class Student{};之后有定义了类的构造方法 Stuent(); 所以new一个对象的时候就是:Student * Stu = new Student(); 其实是创建了一个Stu类并且调用了这个对象的构造方法。
一个类必须有构造函数,要么用户自己定义,要么编译器自动生成。一旦用户自己定义了构造函数,不管有几个,也不管形参如何,编译器都不再自动生成。
创建对象可以写作Student stu()Student stu,在堆上创建对象可以写作Student *pstu = new Student()Student *pstu = new Student,它们都会调用构造函数 Student()。



0 0