// Person通过指针拥有string class Person { public: Person(string name) { pName_ = new string(name); } ~Person() { delete pName_; } void printName() { cout << *pName_; } private: string* pName_; }; int main() { vector<Person> persons; persons.push_ba…
 C++_进阶之函数模板_类模板 第一部分 前言 c++提供了函数模板(function template.)所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表.这个通用函数就成为函数模板.凡是函数体相同的函数都可以用这个模板代替,不必定义多个函数,只需在模板中定义一次即可.在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现不同函 数的功能. 1)c++提供两种模板机制:函数模板和类模板 2)类属 - 类型参数化,又称参数模板 使得程序(…
一.资源.句柄和ID 资源: MFC中的资源,如菜单.对话框.图标.工具条.对话框等,是windows创建的,并占用堆内存.windows在创建这些资源时候会给每个资源分配一个句柄,用来标记这些资源,通过API或函数,可以通过句柄访问这些资源.资源的特点是,它存储在堆内存中.所以创建后就不容易被自动销毁.如果要销毁它,就得手动销毁. 句柄: 所有句柄是windows自动给资源分配的一个标识,用于方便进程访问资源,它本质是一个unsigned int,即无符号32未整数. 只要主观上能知道wind…
前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有⽅法的类 最终你会希望为你的类增加⽅法.只需要定义⼀个有着恰当签名的函数并将 其作为属性赋值就可以了.添加实例⽅法 In [14]: def echo_bar(self):#定义了一个普通的函数 ...: print(self.bar) ...: In [15]: FooChild = type('…
//############################################################################ /* 在多态虚基类中声明一个虚析构函数 */ /* 为什么需要虚析构函数 */ class yellowdog : public dog { }; dog* dogFactory::createDog() { dog* pd = new yellowdog(); return pd; } int main() { dog* pd = dog…
Scala进阶之路-Scala特征类与unapply反向抽取 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala特征类分析 1>.Unit 答:用于定义返回值类型,它的值只有一个,即"()",它有点类似于Java的void,只不过Java的返回值没有变现形式. 2>.null 答 :一般多用于Scala语法赋值时默认的空值,比如:“var blog:String = _”,那么变量中blog的值就为null. 3>.Nothing 答:N…
//类的深拷贝和浅拷贝 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class Point{ public: Point(int _a,int _b,const char *pin/*in*/){ x = _a; y = _b; remark = ()); strcpy(remark, pin); cout << "我是自定义的有参构造函数4" <<…
js进阶 10-7 简单的伪类选择器可以干什么 一.总结 一句话总结:伪类选择器是冒号. 1.学而不用,有什么用? 多用啊,在项目中多用 2.简单的伪类选择器可以干什么? 除某元素以外,某元素的一切索引相关(奇偶,开始最后,大于小于等于) 除某元素以外,某元素的第一个,最后一个,以及某元素所有和索引相关的操作 3.伪类选择器的关键性符号是什么? 冒号,以英文冒号“:”开头 4.如何选取某一个元素中的其他元素? 用后代选择器 $('ul :not(#one)').css('color','blue…
类默认函数:构造函数,拷贝构造函数,赋值函数和析构函数 // person.h #ifndef _PERSON_H_ #define _PERSON_H_ class Person{ public : Person(); Person(int myage, char *myname); Person(const Person &a); Person& operator=(const Person& other); ~Person(void); void set_age(int my…
[1]为什么空类可以创建对象呢? 示例代码如下: #include <iostream> using namespace std; class Empty { }; void main() { Empty obj1; cout << sizeof(Empty) << endl; // 1 } 让我们先看看这个例子.既然都没有构造函数,怎么实现对象obj1的构建呢? 哦,经过大脑的回旋式搜索,忆得有一本书上说过,当用户定义一个空类(如上)时,编译器就会为这个类默认生成六个…