1. 虚函数虚函数是在某个基类声明为virtual并在一个或多个派生类中重新定义的成员函数。虚函数是C++多态的基础,通过指向类的指针或引用调用,调用的方式是动态联编,到运行时才确定调用的是该虚函数的哪一个实现。非虚函数是静态联编,在编译时刻系统就能根据指针类型确定调用的函数。虚函数一般会有一个默认实现,还有一种函数叫做纯虚函数,纯虚函数可以只声明不定义,带有纯虚函数的类不能实例化,相当于JAVA中的接口。2. 虚函...
说真的,这玩意要是想写出一个在效率上高于malloc的,还挺难。。。 list.h 1#pragma once2 3#ifndef __LC_LIST_H4#define __LC_LIST_H5 6namespace LC7{8 9 template<typename T>10class Node final11{12public:13 Node(){}14explicit Node(Node<T>* next, T&& data) noexcept : _data(std::move(data)), _next(next) {}15explicit Node(Node<T>* next, const T& data) noexcept : _data(data), _next(next) {}16explicit N...
1、形参和实参:编译器并没有规定实参的求值顺序。类似下面的代码,其行为是未定义的:int i = 0; printf("%d %d\n",++i,++i);2、变量的初始化:如果内置类型的变量,在定义时候没有初始化,那么它的值由定义的位置决定。全局变量会被默认初始化为0,局部变量将不被初始化。3、局部静态对象:在第一次经过变量定义的时候才初始化,到程序退出才销毁。局部静态对象默认初始化为0。4、函数的声明 又叫 函数原型,prototype。5、变量...
1.求圆的周长例子:#define CRT_SECURE_WARINGS #include <iostream> usingnamespace std;class Circle { public:int m_R;int GetZhouchang(){return2 * 3.14 * m_R;}private:};void test() {Circle c;c.m_R = 10;int z=c.GetZhouchang();cout << "周长为:" << z << endl; }int main() {test();system("pause");} 原文:https://www.cnblogs.com/ZHXI/p/13755956.html
1、为某一特定的问题而设计的指令序列称为:程序2、‘32位微型计算机’中的32位指的是:机器的字长3、存储设备中,存取速度最快的是:Cache4、指令的操作码表示的是:作何操作5、一条指令由哪两部分组成:操作码和地址码6、任何程序必须被加载到哪里中才能被CPU中执行:内存7、RAM:随机存储器:断电后会丢失存储的内容8、ROM:只读存储器:只能读取事先所存数据的固态半导体存储器,其中数据是由计算机制造厂预先写入的9、微型计算...
C++程序的实现(预处理,编译,连接)Linux平台编译gcc和g++都是GNU的编译器。1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。3、使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL。test.cpp 1 #include<iostream>2usingnamespace std;3int main()4{5 cout<<"hello world!"<<endl;6return0;7} [zsj@localhost aa]$ ldd testlinux-vdso.so.1 => (...
1、#include与using的区别C++里的#include类似于C#解决方案中的引用C++仅仅using namespace是不够的,必须要将含有此namespace的文件包含进来C#中仅仅使用using namespace是不够的,必须要将含有此namespace的文件引用进来(如System.dll是工程在创建后自动引用的) 原文:https://www.cnblogs.com/code1992/p/9295678.html
1. static变量,包括内置数据类型和自定义对象是在何时进行内存分配和初始化的? 全局变量,文件域静态变量,类的静态成员变量在mian函数执行之前的静态初始化过程中分配内存并进行初始化。 局部静态变量,在第一次使用时分配内存并进行初始化。 以上规则适用于内置数据类型和自定义对象类型。2. static变量的初始化是否是线程安全的? 非局部静态变量在main函数执行前完成了内存分配和初始化,一般认为是线程安全的。...
c++的构造函数也定义了一个隐式转换explicit只对构造函数起作用,用来抑制隐式转换看一个小例子新建一个头文件#ifndef CMYSTRING_H #define CMYSTRING_H #include<string> #include<iostream>usingnamespace std;class CMyString { public:CMyString(constchar * str);void SetString(string str); };#endif// CMYSTRING_H 实现它#include "CMyString.h"CMyString::CMyString(constchar * str) {std::cout<<str; }void CMyString::...
一句话总结指针分配内存,有地址(编译器和程序员看来),属于一个类型变量,支持取地址与解引用操作。引用分配内存,有地址(编译器看来),相当于一个变量别名,不支持取地址与解引用操作(即不可获取其本身地址),声明即必须初始化,不可变更引用对象,本质上是“pointer const”。推荐阅读快速理解:简谈 C++ 中指针与引用的底层实现原文:https://www.cnblogs.com/MinPage/p/14662084.html
#include <iostream>usingnamespace std;int jumpFloor(int number) {//递归//if(number<0)return 0;//if(number==0)return 1;//if(number==1)return 1;//else return (jumpFloor(number-1) + jumpFloor(number-2));//循坏int way=1;int pre_way=1;if(number<0)way=0;if(number==0)way=1;if(number==1)way=1;while(number>=2){int temp=way;way += pre_way;pre_way = temp;number--;}return way; }int Fibonacci(int n) {//递归//i...
我的主题是,有时候知道一些细节会让你写出更好的代码。============================================之前学coocs2d-x的时候,发现有非常多do...while(0)的写法,一開始不明确为什么如此写,(起不到循环的作用),然后找了一下资料,发现这东西用处还蛮多的。如今来总结一下:do...while(0)的妙用。1.避免goto的使用比方说我们须要在函数中处理一些错误。遇到错误则退出函数。当然退出之前我们须要释放一下资源。比方以下这样子:...
一、类 1.类是一种数据类型,将数据与对数据的操作(函数)放到一起。一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口,对象之间通过消息进行通讯。 2.如果在类的起始点无访问说明符,系统默认为私有(private) 3.类是一种数据类型,定义时系统不为类分配存储空间,所以不能对类的数据成员进行初始化。类中的任何数据成员也不能使用关键字extern,auto,register等关键字限定其存储类型 ...
前面已经学习了变量和常量,我们可以开始对它们进行操作,这就要用到C++的操作符。有些语言,很多操作符都是一些关键字, 比如add, equals等等。C++的操作符主要是由符号组成的。这些符号不在字母表中,但是在所有键盘上都可以找到。这个特点使得C++程序更简洁,也更国际化。运算符是C++语言的基础,所以非常重要。 你不需要背下所有这一小节的内容,这些细节知识仅供你以后需要时参考 。赋值Assignation (=) 赋值运算符的功能...
首先得说一下,我是个菜逼,这个问题今天才发现,才理解是什么意思;;;;编程大牛请忽略此文章,,,,给初学者交流一下经验吧;;;;;临近期末考试了,又拿出之前做的水体浏览一下,大喜,,发现问题了;;;;在之前的C语言中,我们会经常用 char定义一个字符或字符串,,,当时在处理字符串长度,字符串比较的时候通常会加一个头文件 #include <string.h> 对吧;;;;现如今呢,在c++中,,,,同样出现了一个 #include...