为了账号安全,请及时绑定邮箱和手机立即绑定
  • Student *p = new Student() 和 Student *p = new Student; 有什么区别 不加括号代表默认初始化(default initialize),类型后加上空括号代表值初始化(value initialize)。 对于有构造函数的类,这两种形式都是调用其默认构造函数。没有区别。意思就是在对于有构造函数的类 加与不加()都是没关系的; 而对于没有构造函数的类, 加()会初始化对象的值,也就是String = null,int/float/double = 0, 不加()则不会,值就会随编译器而定; 但对于built-in类型,由于没有默认构造函数,所以默认初始化会导致初值未定。而值初始化则一般会初始化为0。
    查看全部
    0 采集 收起 来源:类外定义

    2015-08-26

  • #include <iostream> #include <string> using namespace std; /** * 定义类:Student * 数据成员:m_strName * 数据成员的封装函数:setName()、getName() */ class Student { public: // 定义数据成员封装函数setName() void setName(string _name) { m_strName=_name; } // 定义数据成员封装函数getName() string getName() { return m_strName; } //定义Student类私有数据成员m_strName private: string m_strName; }; int main() { // 使用new关键字,实例化对象 Student *str = new Student; // 设置对象的数据成员 str->setName("慕课网"); // 使用cout打印对象str的数据成员 cout<<str->getName()<<endl; // 将对象str的内存释放,并将其置空 delete str; str=NULL; return 0; }
    查看全部
    0 采集 收起 来源:单元巩固

    2018-03-22

  • #include<iostream> #include<string> using namespace std; class Student { public: void setName(string _name) { m_strName=_name; } string getName() { return m_strName; } void setGender(string _gender) { m_strGender=_gender; } string getGender() { return m_strGender; } int getScore() { return m_iScore; } void initScore() { m_iScore=0; } void study(int _score) { m_iScore+=_score; } private: string m_strName; string m_strGender; int m_iScore; }; int main() { Student stu; stu.setName("zhang"); stu.setGender("女"); stu.initScore(); stu.study(3); cout<<stu.getName()<<" "<<stu.getGender()<<" "<<stu.getScore(); system("pause"); return 0; }
    查看全部
  • 对象被销毁之前被自动调用的函数
    查看全部
    0 采集 收起 来源:C++ 析构函数

    2015-08-25

  • 从类名中看出功能
    查看全部
  • 对象的实例化 从栈中实例化 从堆中实例化 从堆中申请内存,注意回收 对象成员的访问方法 对象成员的访问 点运算符 指向运算符 对象数组 运用循坏语句进行实例化
    查看全部
  • 类 与 对象 关键字 类名 数据成员 属性 成员函数 方法 目的不同,抽象出来的信息也不同 选择性透漏 封装 暴漏与隐藏 访问限定符
    查看全部
    0 采集 收起 来源:C++类和对象

    2015-08-25

  • 拷贝构造函数的参数是确定的,不能重载
    查看全部
    0 采集 收起 来源:练习

    2015-08-25

  • 在什么时候会自动调用拷贝构造函数
    查看全部
  • class Student { public: Student() { cout<<”Student”; } private: string m_atrName; }; Int main(void) { Student stu1; Student stu2=stu1; Student stu3(stu1); Return 0; } 理论上应该调用三次构造函数,但实际只调用一次?? 调用的是拷贝构造函数 定义时与普通构造函数基本相同,只是在参数上面有严格的要求。 如果没有自定义的拷贝构造函数则系统自动生成一个默认的拷贝构造函数。 当采用直接初始化或复制初始化实例对象时系统自动调用拷贝构造函数。 构造函数: 无参 默认构造函数 有参 默认/无默认 系统自动生成的函数: 普通构造函数 拷贝构造函数 初始化列表只能连接在构造函数后边
    查看全部
  • 内存分区: 栈区:int x=0; int *p=NULL; 堆区:int *p=new int[20]; 全局区:存储全局变量和静态变量 常量区:string str=”hello”; 代码区:存储逻辑代码的二进制
    查看全部
  • Teacher.h #include<iostream> #includ<stringe> Using namespace std: class Teacher { Public: Teacher(string name=”Jim”,int age=1); void setName(string name); string getName(); void setAge(int age); int getAge(); private: stringcm_strName; int m_iAge; const int m_iMax; }
    查看全部
  • Teacher.cpp #include”Teacher.h” Teacher::Teacher(string name,int age,int m):m_strName(name),m_iAge(age),m_iMax(m) /*初始化列表 { cout<<” Teacher(string name,int age)”<<endl; } Void Teacher::setName(string name) { M_strName=name; } string Teacher::getName() { Return m_strName; } Void Tracher::setAge(int age) { M_iAge=age; } Int Teacher::getAge() { Return m_iAge; }
    查看全部
  • Teacher.h #include<iostream> #includ<stringe> Using namespace std: class Teacher { Public: Teacher(string name=”Jim”,int age=1,int m=100); void setName(string name); string getName(); void setAge(int age); int getAge(); private: stringcm_strName; int m_iAge; const int m_iMax; }
    查看全部
  • Demo.cpp #include”Teacher.h” Using namespace std; Int main(void) { Teacher t1(“Merry”,12); cout<<t1.getName()<<” ”<<t1.getAge<<endl; system(“pause”); return 0; }
    查看全部

举报

0/150
提交
取消
课程须知
本课程是C++初级课程 需要熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、类的定义与对象实例化 2、string类型及属性封装 3、类外定义 4、构造函数与初始化列表 5、析构函数

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!