c++中在一个类中定义另一个只有带参数构造函数的类的对象,编译通不过 #include<iostream> using namespace std; class A { public: A(int i){} }; class B { public: B(){} private: //A a; //这里当然通不过,没有可用的构造函数 A a(5); //但是这里也编译通不过,编译器居然把此语句当成一个定义一个函数A a()了,郁闷! }; void main() { B b; } 我现在想
为了弄清这个代码,写了个测试,但是测试的结果和往上的代码有所差别,仁者见仁,智者见智了.如果我的测试用例用问题,欢迎指出. 首先,方法的是在被调用时执行,但是静态方法在所有地方都可以调用,应该在很早的时候就被编译了.这个测试依赖静态方法来输出顺序. public class WhenCodeThread : ITestSample { public class Test : TestBase { int instanceParam2 = staticFunction("子类实体变量")
面向对象三大特点:封装.继承.多态 封装概念 ① 将东西包装在一起,然后以新的完整形式呈现出来: 将方法和字段一起包装到一个单元中,单元以类的形式实现; ② 信息隐藏,隐藏对象的实现细节,不让外部直接访问到; ③ 将数据和方法包装进类中,加上具体实现的隐藏,共同被称作封装,其结果是一个同时带有特征和行为的数据类型; ④ 定义类,定义其属性.方法的过程称为封装类; 信息隐藏式OOP最重要的功能之一,也是使用访问修饰符的原因; 信息隐藏的原因包括: ① 对模块的任何实现细节所作的
本节重点思维导图 快捷键 生成代码:alt+shift+s 提取变量:alt+shift+L 快速复制行:alt+ctrl+向上或向下的箭头 删除行:ctrl+d 类:对同一种事物共同属性和行为的抽象 对象:根据类创建出来的具体的实物 方法重载 在同一个类中提供多个同名不同参的方法. 重载要求:方法名称相同,但参数的 [ 类型不同 or 参数的个数不同 or 参数的顺序不同] public class Demo { public void fun1() { } p
类的继承 父类-子类 关键字 extends 新建一个父类 public class Person { private String name; private int age; public void run() { System.out.println("Person run"); } } public class Student extends Person { public void run()