C++对模板类的支持比较灵活,模板类的参数中除了可以有类型参数,还可以有普通参数.例如: template<typename T, int N> class Demo{ }; N 是一个普通参数,用来传递数据,而不是类型,它与常见的函数中的参数一样,可以在类体中使用.这称为模板中的函数式参数. T 用来传递数据的类型,N 用来传递数据的值,数据的值和类型都可以参数化,这是典型的面向对象编程思想. 为了演示模板中的函数式参数,下面我们来定义一个数组类: #include <iostream…
using 声明 先来看 using 声明在类中的应用: 代码1 #include <iostream> using namespace std; struct A { void f(int) {cout << "A::f(int)" << endl;} }; struct S : A { }; int main() { S s; s.f(1); // A::f(int) } 类 S 继承了类 A 的成员函数 f,所以类 S 的实例 s 调用 f 输…
在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见.比如最常用的:Worksheet.Range("A1:A10") VB的语法,使用参数的不一定是方法,也有可能是属性!(虽然属性的本质是方法) 例一:参数当作"索引"使用 定义一个类模块,模块名称Ints.为简化模型,使用了只读属性. ) As Integer Public Property Get ArrValue(Index As Integer) As Integer ArrValue = arr…
variant variant 是 C++17 所提供的变体类型.variant<X, Y, Z> 是可存放 X, Y, Z 这三种类型数据的变体类型. 与C语言中传统的 union 类型相同的是,variant 也是联合(union)类型.即 variant 可以存放多种类型的数据,但任何时刻最多只能存放其中一种类型的数据. 与C语言中传统的 union 类型所不同的是,variant 是可辨识的类型安全的联合(union)类型.即 variant 无须借助外力只需要通过查询自身就可辨别实际…
Constexpr If(编译期 if 语句) 以 if constexpr 打头的 if 语句被称为 Constexpr If. Constexpr If 是C++17所引入的新的语法特性.它为C++语言提供了在编译期处理条件分歧的功能. 运行期 if 语句 预处理 if 语句 编译期 if 语句 if (condition) { statement; } else if (condition) { statement; } else { statement; } #if condition…