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。
构造函数:
- classStudent{
- private:
- char *m_name;
- int m_age;
- float m_score;
- public:
- //声明构造函数
- Student(char*name,int age,float score);
- //声明普通成员函数
- void show();
- };
- //定义构造函数
- Student::Student(char*name,int age,float score){
- m_name = name;
- m_age = age;
- m_score = score;
- }
- int main(){
- //创建对象时向构造函数传参
- Student stu("小明",15,92.5f);
- stu.show();
- //创建对象时向构造函数传参
- Student *pstu=newStudent("李华",16,96);
- pstu -> show();
- return0;
- }
- 构造函数的调用是强制性的,一旦在类中定义了构造函数,那么创建对象时就一定要调用,不调用是错误的。如果有多个重载的构造函数,那么创建对象时提供的实参必须和其中的一个构造函数匹配;反过来说,创建对象时只有一个构造函数会被调用。
理解:那么可以理解 创建一个类Class Student{};之后有定义了类的构造方法 Stuent(); 所以new一个对象的时候就是:Student * Stu = new Student(); 其实是创建了一个Stu类并且调用了这个对象的构造方法。
一个类必须有构造函数,要么用户自己定义,要么编译器自动生成。一旦用户自己定义了构造函数,不管有几个,也不管形参如何,编译器都不再自动生成。
创建对象可以写作
Student stu()
或Student stu
,在堆上创建对象可以写作Student *pstu = new Student()
或Student *pstu = new Student
,它们都会调用构造函数 Student()。 0 0
- C语言学习记录1
- C 学习记录 出错记录
- c++primer学习记录(1)
- C指针学习记录
- C语言学习记录
- Objective-C 学习记录
- c 学习记录 一
- c 指针学习记录
- Objective-C 学习记录
- C语言学习记录
- c学习记录
- C语言学习记录
- Objective-C学习记录
- C语言学习记录
- 学习记录 c/c++
- c学习记录
- C/C++学习记录
- C指针学习记录 2
- 111. Minimum Depth of Binary Tree
- mysql5.5三种binlog日志格式
- javascript字符串中每个单词的首字母大写化问题
- localhost,127.0.0.1 和 本机IP 三者的区别
- POJ2063Investment
- C++ 学习记录1
- JAVA中synchronized的使用以及对象锁和类锁的概念
- cocoapods安装及项目中使用
- Error while performing database login with the sqljdbc driver:Unable to create connection. Check you
- 使用RxPermissions(基于RxJava2)
- 对于前后端分离技术的理解和实现
- BZOJ 4197: [Noi2015]寿司晚宴
- 安卓 | 使用AsyncTask进行Socket编程
- 博为峰Java技术文章 ——JavaSE Swing 滑动组件JSliderⅢ