![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 65
keep study
这个作者很懒,什么都没留下…
展开
-
c++中的函数重载、函数重写、函数重定义 2021-09-02
一、函数重载(Function Overloading)为了更加深刻的理解 函数重载、重写、重定义,我们可以带着如下这两个问题去思考:1、子类中是否可以定义父类中的同名成员?为什么?可以,因为子类与父类的命名空间不同;2、子类中定义的函数是否可以重载父类中的同名函数?不可以,因为函数重载必须在同一个作用域中。 1、什么是函数重载 在同一个类中(同一个作用域中/在类的内部),存在一组函数名相同,函数的参数列表不同(参数的个数、类型、顺序),函数有无 virtual 关键字都可以,我们把这组原创 2021-09-02 16:55:34 · 791 阅读 · 0 评论 -
在c++程序中调用被C编译器编译后的函数,为什么要使用extern “C”
c/c++函数调用约定:c/c++函数调用约定一、原题:二、详细说明:现在,在一个工程中;有一个test.c文件;一个test1.cpp文件;//test.c#include<stdio.h>int Add(int a,int b){ return a+b;}(1)使用extern int Add(int,int);声明外部函数—–错误//test1.cpp#include<iostream>using namespace std;exter原创 2021-09-02 16:29:54 · 592 阅读 · 0 评论 -
第19课 - 对象的构造
原创 2020-10-23 17:08:54 · 59 阅读 · 1 评论 -
第16课 - 类的真正形态
#include <QCoreApplication>//int main(int argc, char *argv[])//{// QCoreApplication a(argc, argv);// return a.exec();//}#include <stdio.h>struct A{ // defualt to public int i; // defualt to pu...原创 2020-10-23 16:51:37 · 104 阅读 · 0 评论 -
第15课 - 类与封装的概念
原创 2020-10-23 16:28:13 · 71 阅读 · 0 评论 -
第14课 - 进阶面向对象
#include <stdio.h>struct Biology { bool living;};struct Animal : Biology { bool movable; void findFood() { }};struct Plant : Biology { bool growable;};struct Beast : Animal { ...原创 2020-10-23 16:17:58 · 57 阅读 · 0 评论 -
第12课 - 经典问题解析一
#include <stdio.h>int main(){ const int x = 1; const int& rx = x; int& nrx = const_cast<int&>(rx); nrx = 5; printf("x = %d\n", x);//x是常量被放入到符号表 printf("rx = %d\...原创 2020-10-22 19:30:57 · 77 阅读 · 0 评论 -
第11课 - 新型的类型转换
#include <stdio.h>void static_cast_demo(){ int i = 0x12345; char c = 'c'; int* pi = &i; char* pc = &c; c = static_cast<char>(i); pc = static_cast<char*>(pi); /...原创 2020-10-22 18:31:59 · 52 阅读 · 0 评论 -
第10课 - C++ 中的新成员
C++ 的new和delete要一一对应,防止内存泄漏#include <stdio.h>int main(){ int* p = new int; *p = 5; *p = *p + 10; printf("p = %p\n", p); printf("*p = %d\n", *p); delete p; p = new int...原创 2020-10-22 16:00:09 · 64 阅读 · 0 评论 -
第9课 - 函数重载分析(下)
#include <stdio.h>#include <string.h>int func(int x){ return x;}int func(int a, int b){ return a + b;}int func(const char* s){ return strlen(s);}typedef int(*PFUNC)(int a);int main(int argc,...原创 2020-10-22 15:44:35 · 54 阅读 · 0 评论 -
第8课 - 函数重载分析(上)
#include <stdio.h>#include <string.h>int func(int x){ return x;}int func(int a, int b){ return a + b;}int func(const char* s){ return strlen(s);}int main(int argc, char *argv[]){ printf("...原创 2020-10-22 15:05:54 · 51 阅读 · 0 评论 -
第7课 - 函数参数的扩展
#include <stdio.h>int add(int x, int y = 0, int z = 0);int main(int argc, char *argv[]){ printf("%d\n", add(1)); printf("%d\n", add(1, 2)); printf("%d\n", add(1, 2, 3)); return 0;}int add(int x, in...原创 2020-10-22 14:41:48 · 79 阅读 · 0 评论 -
第5课 - 引用的本质分析
#include <stdio.h>void Example(){ printf("Example:\n"); int a = 4; const int& b = a; int* p = (int*)&b; //b = 5; *p = 5; printf("a = %d\n", a); printf("b = %d\n", b);}...原创 2020-10-21 18:40:59 · 65 阅读 · 0 评论 -
第3课 - 进化后的 const 分析
#include <stdio.h>int main(){ const int c = 0; int* p = (int*)&c; printf("Begin...\n"); *p = 5; printf("c = %d\n", c); printf("End...\n"); return 0;}#include <stdio.h>void f(...原创 2020-10-21 11:53:10 · 64 阅读 · 0 评论 -
第2课 - C 到 C++ 的升级
register 关键字请求编译器将局部变量储存于寄存器中1、C++中还坚持使用register关键字2、C++编译器有自己的优化方式 C语言中无法获得register 变量的地址 C++中可以获得register 变量的地址int f() 和 int f(void)有区别吗?1) 在标准C语言中int f() 表示形参可以有任意多个 int f(void) 表示不接收任何形参2) 在C++中两者没有区别,都表示不接收任何形...原创 2020-10-21 11:17:06 · 119 阅读 · 0 评论 -
第1课 - 学习 C++ 的意义
软件方法论的发展:面向过程的程序设计:数据结构+算法--主要解决可惜计算的问题,用户需求简单而固定特点:1、分析解决问题所需要的步骤2、利用函数实现各个步骤3、依次调用函数解决问题问题:1、软件可重用性差2、软件可维护性差当面向过程暴露车越来越多的缺陷时候,业界开始考虑在业界引入面向对象的设计方法,而第一个需要解决的问题就是:高效的面向对象语言,并且能够兼容已经存在的代码。...原创 2020-10-21 10:53:38 · 153 阅读 · 0 评论 -
2020-10-17
https://www.cnblogs.com/sunchaothu/p/10389842.htmlC++ 单例模式总结与剖析目录C++ 单例模式总结与剖析 一、什么是单例 二、C++单例的实现 2.1 基础要点 2.2 C++ 实现单例的几种方式 2.2.1 有缺陷的懒汉式 2.2.2 线程安全、内存安全的懒汉式单例 (智能指针,锁) 2.2.3 最推荐的懒汉式单例(magic static )——局部静态变量 2.2.4 函数返回引用 .转载 2020-10-17 12:10:11 · 96 阅读 · 0 评论 -
extends和implements区别
extends与implements的不同1、在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。extends 是继承某个类,继承之后可以使用父类的方法, 也可以重写父类的方法;implements 是实现多个接口,接口的方法一般为空的, 必须重写才能使用2、extends是继承父类,只要那个类...转载 2019-06-02 17:41:57 · 306 阅读 · 0 评论