听课笔记---程序设计与算法(三)C++面向对象程序设计(郭伟老师)---第二周

北京大学Coursera-程序设计与算法专项课程PPT(前5项)干货 本专项课程旨在系统培养你的程序设计与编写能力。系列课程从计算机的基础知识讲起,无论你来自任何学科和行业背景,都能快速理解;同时我们又系统性地介绍了C程序设计,C++程序设计,算法基础,数据结构与算法相关的内容,各门课之间联系紧密,循序渐进,能够帮你奠定坚实的程序开发基础;课程全部配套在线编程测试,将有效地训练和提升你编写程序的实际动手能力。并通过结业实践项目为你提供应用程序设计解决复杂现实问题的锻炼,从而积累实际开发的经验。因此,我们希望本专项课程能够帮助你完成从仅了解基本的计算机知识到能够利用高质量的程序解决实际问题的转变。 立即下载

Week 2

Contents

成员与隐藏

构造函数

析构函数

Thoughts

成员与隐藏

成员函数的定义与调用
  • 成员函数可定义在类内部,与普通函数类似,也可定义在类外部,但其声明总是在类内部,形式如下
class A {
    int Fun();
}

int A::Fun()
{
    ...
}
  • 成员函数必须由对象或指向对象的指针调用
private and public
  • 关键字可以在定义时反复使用,不限顺序
class A {
public:
    ...
private:
    ...
public:
    ...
}
  • 没有关键字的视为private

    class A {
    int a; // private
    int Fun(); //private
    public:
    int b; // public
    };
  • private 成员只能在成员函数内部访问,public 成员可以在任何地方访问

成员函数的可访问范围
  • 当前对象的全部属性,函数
  • 同类对象所有属性及函数(以函数参数传递而来)
其余地带可访问范围

对象的公共成员

“隐藏”机制及其作用
  • 设置私有成员的机制为”隐藏“
  • 强制对成员的访问一定要通过成员函数,以后对成员的属性(如数据类型,返回值类型)进行改变后,只需要改变对应的成员函数中的操作即可,不必修改其余地带直接使用该成员的语句
隐藏机制实例
#include<iostream>
#include<cstring>

class CEmployee {
private:
    char szName[30];
    int getSalary();
public:
    int salary;
    void setName(const char * name);
    void getName(char * name);
    void averageSalary(CEmployee e1, CEmployee e2);
};

void CEmployee::setName(const char * name)
{
            strcpy(szName, name);   //直接使用私有成员szName,合法
}

void CEmployee::getName(char * name)
{
            strcpy(name, szName);//直接使用私有成员szName,合法
}

int CEmployee::getSalary()
{
            return salary;
}

int main()
{
    CEmployee A;
    char name[30];
    A.setName("Tom"); // 合法
    A.getSalary(); // 非法,直接在其他地带调用私有函数
    strcpy(name, A.szName); // 非法,直接使用私有变量
    return 0;
}
成员函数的重载及参数缺省

成员函数也可以重载和参数缺省

但是要避免二义性错误, 如

class A {
    void Fun();
    void Fun(int a = 0);
}

int main()
{
    Fun();// ambiguous
}

构造函数

构造函数基本概念
  • 成员函数的一种
  • 名字与类名相同,可以有参数,不能有返回值(void)也不行
  • 负责初始化,不负责分配空间
  • 程序自动生成无参数构造函数,无任何操作。在程序员自己定义了构造函数以后,缺省的构造函数失效,若仍需无参数构造函数需自己写
  • 一个类可以有多个构造函数,各函数之间为重载关系
  • 对象生成时,构造函数会被调用(无论什么形式生成),构造函数执行且仅执行一次
  • 不允许出现A::A(A) 式的构造函数
构造函数的意义
  • 自动初始化对象,不再需要额外初始化对象
  • 避免无初始化导致的未知错误
允许private 构造函数

private 构造函数不能用来直接初始化对象

构造函数使用实例
构造函数基本使用
#include<iostream>

class Complex {
    double real, imag;  // private
public:
    Complex(double real, double imag);
    Complex(double i);
    Complex(Complex, Complex);
};

Complex::Complex(double r, double i)
{
    real = r;
    imag = i;
}

Complex::Complex(double i)
{
    real = i;
    imag = 0;
}

Complex::Complex(Complex c1, Complex c2)
{
    real = c1.real + c2.real;   
    imag = c1.imag + c2.imag;   // 均合法,使用同类对象私有变量
}

int main()
{
    Complex a;      // 非法,无参缺省构造函数已停用
    Complex c1(4), c2(2, 1); // 自动转化为 double
    Complex c(c1, c2);
    Complex * p = new Complex(1);

    return 0;
}
构造函数与数组
#include<iostream>

class Test {
public:
    int x;
    Test() 
    {
        std::cout << "Constructor 1 Called." << std::endl;
    }
    Test(int i)
    {
        x = i;
        std::cout << "Constructor 2 Called." << std::endl;
    }
    Test(int a, int b)
    {
        x = a + b;
        std::cout << "Constructor 3 Called." << std::endl;
    }
};


int main()
{
    Test A[2] = {2};        // A[1]只有一个空元素也要调用constructor
    std::cout << "Step 1" << std::endl;
    Test B[2] = {Test(2, 1), 5};
    std::cout << "Step 2" << std::endl;
    Test * P = new Test[2]{1, Test(2,1)};   // 这种初始化方式C++11才有,warning: 额外的初始化,new feature
    std::cout << "Step 3" << std::endl;
    delete []P;
    Test * PA[3] = {new Test(1), new Test(1,2), NULL};  // PA[2]只有一个指针不调用constructor
    delete PA[1];
    delete PA[0];
    std::cout << "Step 4" << std::endl;

    return 0;
}

输出

Constructor 2 Called.
Constructor 1 Called.
Step 1
Constructor 3 Called.
Constructor 2 Called.
Step 2
Constructor 2 Called.
Constructor 3 Called.
Step 3
Constructor 2 Called.
Constructor 3 Called.
Step 4

复制构造函数
复制构造函数基本概念
  • 构造函数中的一种
  • 只有一个参数,即对同类对象的引用(可以是const或非const ,一般使用const)
  • 编译器会自动生成复制构造函数,若程序员自己定义,则自动生成的复制构造函数不存在
复制构造函数实例
自动生成的复制构造函数
#include<iostream>

class A {
public:
    int v;
    A(int i)
    {
        v = i;
    }
};

int main()
{
    A c1(5);
    A c2(c1);   // 缺省的复制构造函数被调用

    std::cout << c1.v << std::endl;
    std::cout << c2.v << std::endl;

    return 0;
}

输出

5
5

三种复制构造函数起作用的情况
  1. 用一个对象初始化另一个同类的对象

    
    #include<iostream>
    
    
    class A {
    public:
    int v;
    A(int i)
    {
        v = i;
    }
    A(A & a)
    {
        v = a.v;
        std::cout << "Copy constructor called." << std::endl;
    }
    };
    
    int main()
    {
    A c1(5);
    A c2(c1);   // 初始化,复制构造函数被调用
    A c3 = c2;  // 同样是初始化语句,而非赋值语句,复制构造函数被调用
    
    c1 = c2;    // 赋值语句,不调用复制构造函数
    return 0;
    }

    Output

    Copy constructor called.
    Copy constructor called.

  2. 函数参数为类的对象,形参会被复制构造函数初始化

    
    #include<iostream>
    
    
    class A {
    public:
    int v;
    A(int i)
    {
        v = i;
    }
    A(A & a)
    {
        v = a.v;
        std::cout << "Copy constructor called." << std::endl;
    }
    };
    
    void Fun(A a)
    {
    std::cout << a.v << std::endl;
    }
    
    int main()
    {
    A c1(5);
    
    Fun(c1);    // 复制构造函数被调用形成形参
    return 0;
    }

    Output

    Copy constructor called.
    5

  3. 函数返回值为类的对象,返回时,复制构造函数初始化返回值

    
    #include<iostream>
    
    
    class A {
    public:
    int v;
    A(int i)
    {
        v = i;
    }
    A(A & a)
    {
        v = a.v;
        std::cout << "Copy constructor called." << std::endl;
    }
    };
    
    A Fun(A a)
    {
    std::cout << a.v << std::endl;
    return a;
    }
    
    int main()
    {
    A c1(5);
    
    std::cout << Fun(c1).v << std::endl;    // 复制构造函数被调用形成形参,再被调用形成返回值
    return 0;
    }

    Output

    Copy constructor called.
    5
    Copy constructor called.
    5

Tips
  • 赋值语句不调用复制构造函数
  • 使用常量引用参数,避免复制构造函数的调用开销,并避免在函数体内改变被引用的对象
类型转换构造函数
类型转换构造函数基本概念
  • 实现类型的自动转换为目的
  • 只有一个参数,不是复制构造函数(即该参数非& A 类型),即可称为类型转换构造函数
  • 构造一个临时变量
类型转换构造函数实例
#include<iostream>

class Complex {
public:
    double real, imag;
    Complex(int i)  // convert int into Complex
    {
        std::cout << "IntConstructor Called." << std::endl;
        real = i;
        imag = 0;
    }
    Complex(double r, double i)
    {
        real = r;
        imag = i;
    }
};

int main()
{
    Complex aa(4,5);
    Complex a(4);   // 类型转换构造函数被调用,用于初始化a,不产生临时变量

    Complex aaa = 4;    // 同样用于初始化,不产生临时变量

    aaa = 9;        // 类型转换构造函数被调用,先生成Complex(9)初始化的临时变量,再赋给aaa

    return 0;
}

Output:

IntConstructor Called.
IntConstructor Called.
IntConstructor Called.

析构函数

析构函数基本概念
  • 名字与类名相同,在类名前加~ 符号
  • 无参数和返回值
  • 一个类最多拥有一个析构函数
  • 析构函数在对象消亡时被调用
  • 缺省的析构函数几乎不进行操作,程序员自定义后缺省的析构函数便消失
析构函数与数组,指针

对象数组消亡时,每个对象的析构函数都会被调用

指针所指的动态分配的对象,不delete就不会消亡,也不调用析构函数

析构函数与函数返回值

对象在以返回值返回时,先调用赋值构造函数生成临时变量,而后消亡调用析构函数,随后临时变量也会消亡,也调用析构函数。

析构函数实例
析构函数与数组
#include<iostream>

class A {
    public:
        ~A()
        {
            std::cout << "Destructor Called." << std::endl;
        }
};

int main()
{
    A Test[2];  // 两个对象,消亡时调用两次析构函数
    A * P = new A[3];   //三个对象, 不delete就不调用析构函数

    return 0;
}

Output:

Destructor Called.
Destructor Called.

析构函数与函数调用
#include<iostream>

class A {
    public:
        int x;
        A(int i) 
        {
            x = i;
        }
        A(A & a)
        {
            x = a.x;
            std::cout << "Copy called" << std::endl;
        }
        ~A()
        {
            std::cout << x << "Destructor Called" << std::endl;
        }
};

A Fun()
{
    A b(4);
    return b;
}

A a(5);

int main()
{
    a = Fun();  //

    std::cout << "main ends" << std::endl;
    return 0;
}

Output:

Copy called
4Destructor Called //b
4Destructor Called //临时变量
main ends

4Destructor Called //a

*编译器中的优化

在许多编译器中,函数的类的对象类型的返回值不会调用复制构造函数生成临时变量,也不会调用析构函数,比如VS在Debug 和 Release 两种模式下,表现是不一样的。

双闭环PWM整流器VOC控制 +SVPWM调制仿真(Simulink仿真实现) 内容概要:本文围绕城市空中交通环境下多无人机协同路径规划问题展开深入研究,重点探讨了在包含建筑物、禁飞区、动态威胁等复杂约束条件下,如何利用仿生优化算法(如布谷鲶鱼优化算法CCO、灰雁优化算法GGO、田忌赛马优化算法THRO)实现安全、高效的多无人机路径规划。文章提出了一种分层规划策略,融合全局路径规划与局部动态避障机制,构建了综合考虑路径长度、威胁暴露度、高度变化及地形碰撞风险的多目标优化模型。通过Matlab仿真平台对多种算法进行对比实验,系统评估了各算法在路径安全性、收敛速度、优化性能和鲁棒性方面的表现,并深入分析了现有方法的局限性,对未来研究方向如动态环境适应、通信受限下的分布式协同等进行了展望。; 适合人群:具备一定编程基础,熟悉Matlab/Simulink仿真环境,从事无人机系统设计、智能交通、自动化控制、路径规划算法研究等相关领域的科研人员及高校研究生。; 使用场景及目标:①应用于城市空中交通系统中多无人机的协同任务执行与动态避障;②为复杂威胁环境下多智能体系统的路径规划提供先进算法支持与仿真验证框架;③辅助研究人员深入理解并复现仿生优化算法在高维、多约束路径规划问题中的具体实现与性能差异。; 阅读建议:此资源以Matlab代码实现为核心,紧密结合理论建模与仿真实验,建议读者在学习过程中重点关注算法的设计原理、参数调优策略及仿真结果的可视化分析,结合文中提供的实验数据进行横向对比,以深刻把握不同仿生算法的搜索机制、适用场景及其在实际工程应用中的潜力与挑战。 立即下载

相关推荐

从单机到多机:用llama.cpp的RPC模式榨干你闲置的GPU(附性能调优参数)

本文详细介绍了如何利用llama.cpp的RPC模式实现多机部署,将闲置GPU资源整合为高效推理集群。通过实战案例展示了性能调优参数设置、端口分配策略以及常见问题排查技巧,帮助中小团队最大化利用异构GPU设备,提升文本摘要等任务的推理效率。

weixin_27240351的博客 588

C++的类和对象

类成员的可访问范围 类成员的函数内部访问范围: 当前对象的全部属性、函数; 同类其他对象的全部属性和函数。 类的成员函数以外的地方,只能访问该类对象的公有成员。 这里是引用 #include <iostream> #include <cstring> using namespace std;//声明引用的标准输入和输出库(std) class CEmpl...

weixin_42648229的博客 504

光电系统光轴校准与偏差控制实战指南

光轴作为光电系统的空间基准坐标系,直接影响多光谱传感器的协同工作精度。在包含可见光、红外与激光测距的复合系统中,光轴偏差会导致目标识别误差与打击精度下降。通过机械基准建立、光学通道粗调和多光谱协同校准等工厂级标定流程,结合千米靶标法、星点校准法等野战应急方案,可有效控制光轴偏差。典型应用场景中,温度补偿与振动抑制技术能维持光轴稳定性,如某舰载系统通过500Hz高频视觉伺服实现0.3mrad振动补偿。掌握这些光轴标定与保持策略,对提升光电系统在侦察、测距等场景的实战性能具有关键价值。

weixin_36149538的博客 273

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(三十四)模板一

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(三十四)模板一 《课时34 模板 I》 什么是templates? 有两种东西,它们结构相同,类型不同 泛类嘛!但是这样不安全。 重用源代码,类型成为参数 函数模板,function template 比如排序函数,就是函数模板,参数类型不同 swap function template template // template 与 clas...

ryontang的博客 524

三相SVPWM逆变器双闭环PI解耦控制:从dq坐标系到参数整定实战

本文深入解析了三相SVPWM逆变器的双闭环PI解耦控制技术。通过引入dq坐标系,将交流量转换为直流量,并结合前馈补偿实现电流环的解耦控制。文章详细阐述了从数学模型推导、控制器设计到参数整定与SVPWM实现的完整流程,为工程师提供了从理论到实战的系统性指导。

weixin_28292761的博客 402

华三R4900 G5服务器实战:用PMC P460-B4阵列卡配置RAID1+RAID6,并搞定CentOS 7.9安装(含热备盘设置)

本文详细解析了在华三R4900 G5服务器上使用PMC P460-B4阵列卡配置RAID1+RAID6混合阵列的全过程,包括热备盘设置和CentOS 7.9系统安装。通过实战步骤和性能优化建议,帮助企业IT人员高效部署高可用存储方案,特别适合需要数据冗余和系统稳定性的企业级应用场景。

weixin_29248653的博客 357

听课笔记---程序设计与算法(三)C++面向对象程序设计(郭伟老师)---第三周

Week3 Week3 目录 this 指针 静态成员函数和静态成员变量 成员对象和封闭类 常量对象和常量函数 友元 内容与思考 this 指针 静态成员函数和静态成员变量 历史由来 this 指针的作用 this 指针使用实例—返回被作用对象 使用空指针调用成员函数 静态成员函数和静态成员变量 定义方式 静态成员的特征与本质 静态成员的访问方式 静态成员实例 实例的改进 ...

fitzleopard的博客 1281

c764-基于Vue的实时温湿度监控系统

🌟 毕业设计指导交流 🌟 同学们好!作为一名计算机专业的技术爱好者,我在毕业设计领域积累了一些经验,希望能和大家分享交流。从选题到答辩,欢迎一起探讨技术问题。💡 技术方向: 熟悉Java全栈(SSM/Spring Boot)、Python数据分析、微信小程序/安卓开发等技术栈,可以互相学习项目开发经验。📂 学习资源: 整理了一些开源项目案例(含代码和文档),需要参考的同学可以留言讨论,也欢迎分享你的项目经验。🛠 交流内容:✨ 欢迎在评论区留言讨论,一起进步!记得遵守社区规范,保持学术

weixin_39513710的博客 1069

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十)不可修改的对象

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十)不可修改的对象 1.可以设置函数为const,如: void f() const { } 表示在这个函数中this为const,即次函数不修改任何成员变量的值,这种使用方式需要在原型和定义时都加上const。 若类中的一个成员变量定义为const,也必须要在构造函数列表进行初始化。 2.若将一个类的对象定义为const,则必须要有构造函数初...

ryontang的博客 378

Part03 数据结构

本文介绍了CSP-S初赛中常见的高级数据结构及其实现,包括: 线性结构:双端栈、双端队列、单调队列、优先队列和ST表,重点分析了它们的特点、时间复杂度及典型应用场景。 集合与森林:并查集(带路径压缩和按秩合并)和树的孩子兄弟表示法,展示了多叉树转化为二叉树存储的方法。 特殊树结构:包括二叉堆、树状数组、线段树和字典树,详细说明了它们的构建、查询和更新操作,特别强调了线段树的递归实现和字典树的前缀匹配特性。 每种数据结构都配有核心C++代码实现,涉及数组模拟、动态规划和树形结构等编程技巧,适合算法竞赛选手快速

weixin_43863957的博客 1179

智能体异常行为检测-基于行为序列的异常模式识别技术【附代码】

在多智能体系统(Multi-Agent Systems, MAS)中,智能体之间的行为协调与自主决策是系统稳定运行的关键。然而,当某个智能体因策略偏移、环境变化或潜在攻击而出现**异常行为(Abnormal Behavior)**时,整个系统可能陷入混乱或崩溃。

一键难忘的博客 1143

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(七)(八)成员变量与成员变量的秘密

(七) 本地变量 Local variable 成员变量 在一个函数里面定义了一个重名的本地变量,所以在这个成员函数里本地变量优先。 成员变量的作用域::是类,在类的成员函数里面使用,类声明里的成员变量也属于声明,而不是定义。 而本地变量只能在定义那个的成员函数里面(如果你在成员函数里面使用某个成员变量, 不要把成员变量作为形参,直接使用即可) 如果你在头文件里面声明了一个全局变量,比如 e...

ryontang的博客 380

SAP 供应商寄售(VMI)完整实现方案

摘要:本文详细讲解了SAP系统中供应商寄售(Consignment)和VMI(供应商管理库存)的实现方法。核心逻辑是物料所有权属于供应商,仅在领用时才触发采购。文章包含配置步骤(物料主数据、供应商设置、定价协议、会计科目等)、端到端操作流程(收货、库存查询、领用、结算、付款)、关键差异比较(与普通采购的区别)、核心事务码和数据表。重点说明了寄售流程无需采购订单,通过信息记录维护价格,领用时才产生应付账款的特点,并提供了常见问题解决方案和VMI进阶优化建议。

金牌架构师 1044

听课笔记---程序设计与算法(三)C++面向对象程序设计(郭伟老师)---第一周

Week1 Contents Reference Inline function Overloaded function Default argument Dynamic memory allocation in C++ const qualifier Class and Object—Basic ideas 想法与体悟 引用 引用可以被视为变量的别名,其行为与常指针T *...

fitzleopard的博客 1110

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(十一)New & Delete

《课时11 new&delete》 本地变量 malloc动态地得到一块内存 C++用新了两个新的运算符来动态分配内存 new Stash new 类的时候,会分配空间并且调用构造函数 new int; new Stash; new int[10]; 运算符必然有返回值。 delete delete p; delete[] p; 先调用析构函数,再释放空间。 int* psome =...

ryontang的博客 446

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十六 二十七)拷贝构造一,二

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十六 二十七)拷贝构造一,二拷贝构造1拷贝构造2 拷贝构造1 C++初始化变量,用“()”和用“=”是等价的。 例如: int i=1; int i(1); 是等价的。 初始化对象时也一样,如果类A有一个A(int i){}的构造函数,那么 A a(1);和A a=1;是等效的,这也是拷贝构造函数能起作用的原因 前面有这个变量的类型叫定义,定...

ryontang的博客 243

(c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十八)静态对象)

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十八)静态对象![Screenshot from 2018-04-12 10:51:38.png](https://img-blog.csdnimg.cn/20190813221211731.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR...

ryontang的博客 247

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十一)引用

c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十一)引用 高级语言里边,比方C++,堆里边存放你动态分配的变量,比方用malloc或new函数。程序自动分配的栈不是你能利用的,而是程序自身用它来存放一些函数参数啊,临时变量啊,返回地址什么的。如果你想在程序中用到栈,那么就得自己定义栈的结构,也可以用标准库中的vector,差不多就是个栈,先进后出嘛。在C++里边,堆内存用的地方很多,栈么…...

ryontang的博客 437

程序设计与算法(三)C++面向对象程序设计 前两周习题讲解

第一周 001:简单的swap 考察引用的概念,比较简单。 002:难一点的swap 这道题目交换的是指针本身,指针本身为形式参数,是传入的值,所以不会交换,需要加入引用才能交换。 003:好怪异的返回值 这道题目直接给返回值赋值,说明返回值是一个引用类型。 004:神秘的数组初始化 这道题目稍微有点难,a是一个指针数组,每一个元素都是一个数组,所以要这样写 #include ...

wwxy1995的博客 839

北京大学MOOC C++程序设计 程序设计与算法(三)第二周测验

以下四个题都很基础,是最近复习C++类和对象的知识做的,其中第三题考查了类型转换构造函数,第四题考查的析构函数,都非常简单。 让我感到棘手的是第一题中如何读入一个带有空格的字符串,最后解决方案是发现了cin.getline()函数。其次是要使用一个char c来存储用于分隔的逗号。eg:输入是mao mao,18,8092,80,80,80,80 你使用cin.getline(name,20,'...

帽帽的博客 6151

PKU 程序设计与算法(三)C++面向对象的程序设计 第一周 从 C 到C++ 测验与作业

PKU 程序设计与算法(三)算法基础

A land whole of flowers. 456

北京大学MOOC 程序设计与算法(三)C++面向对象程序设计 期末考试

1单选(1分) 1) 关于复制构造函数,下列说法正确的是 A. 系统不会生成缺省复制构造函数,因此必须自己实现 B. 复制构造函数是形如X::X(X)的函数 C.  Myclass c1, c2;  c1.n = 1;  c2 = c1;第三句将会调用复制构造函数 D. 调用函数A Func() {   A a(4);    return a;   }时,将会调用A的复制构造函数 正确...

帽帽的博客 1万+

程序设计与算法 第二周测验

题目链接: http://cxsjsxmooc.openjudge.cn/2018t3fallw2/ (1)学生信息处理程序 #include &amp;lt;iostream&amp;gt; #include &amp;lt;string&amp;gt; #include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;ss

weixin_43166749的博客 360

北京大学MOOC C++程序设计 程序设计与算法(三)第一周测验

1:简单的swap 描述 填空,使得程序输出结果是: #include &lt;iostream&gt; using namespace std; class A { public: int x; int getX() { return x; } }; void swap( // 在此处补充你的代码 ) { int tmp = a.x; a.x = b.x; b.x...

帽帽的博客 3503

程序设计与算法三八周笔记STL

泛型程序设计简单地说是使用模板的程序设计法。 将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法。 标准模板库(标准模板库)就是一些常用数据结构和算法的模板的集合。 有了STL,不必再写大多的标准数据结构和算法,并且可获得非常高的性能。  STL中的基本的概念 ...

C++养成记 257

第二周 类和对象基础 - PKU[课程作业]程序设计与算法(三)C++面向对象程序设计_C++ Object Oriented Programming week02

001:编程填空:学生信息处理程序 #include <iostream> #include <string> #include <cstdio> #include <cstring> #include <sstream> #include <cstdlib> using namespace std; class ...

MoMo_qyc的博客 598
上一篇: POJ2965 Refrigerator(穷举+位操作)
下一篇: C++ Primer Section 1-4
FitzLeopard
博客等级 码龄9年 6粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值