C/C++基础知识
文章平均质量分 66
菠萝有点酸
这个作者很懒,什么都没留下…
展开
-
Visual studio模板方法声明与实现分离编译报错:链接错误
问题描述:以下是我的部分代码,采用的是将模板方法getArray声明和实现分离的方式://_public.h#ifndef _PUBLIC_H#define _PUBLIC_H 1//在堆上申请数组的模板方法template<typename T>T** getArray(int row, int col);#endif ////_public.cpp#include "_public.h"template <typename T>T** getArray原创 2021-01-09 18:13:54 · 458 阅读 · 0 评论 -
面试题:new/delete与malloc/free的区别与联系?
1.malloc/free为C的标准库函数,函数原型为:void* malloc(size_t size)//参数代表字节个数void free(void* pointer)//参数代表内存地址new、delete则为C++的操作运算符,它调用的分别为赋值运算符重载operator new()和operator delete();2.在使用上,malloc/free如下:用malloc分别开辟了1个和4个整型大小的空间和并free释放它们;void func(){ //开辟一个空间 i转载 2020-08-27 00:37:08 · 1307 阅读 · 0 评论 -
c++ 中 operator总结
1、operator作类的转换函数类可以使用构造函数将其他类型转化为此类的对象,比如my_class a = my_class(int i);将int型转化为my_class类的一个对象。同样,也可以使用类的转换函数将类的对象转化为其他的类型。类的转换函数应当满足以下的几个条件:转换函数必须是类方法转换函数不能指定返回类型转换函数不能有参数下面是一个类转化函数的例子#include <iostream>using namespace std;class my_c转载 2020-08-26 23:57:38 · 2368 阅读 · 0 评论 -
C++面试题:虚函数(virtual)可以是内联函数(inline)吗?
原文链接:https://github.com/huihut/interview答案:虚函数可以是内联函数,内联是可以修饰虚函数的,但是当虚函数表现多态性的时候不能内联。理由如下:内联是在发生在编译期间,编译器会自主选择内联,而虚函数的多态性在运行期,编译器无法知道运行期调用哪个代码,因此虚函数表现为多态性时(运行期)不可以内联。 inline virtual唯一可以内联的时候是:编译器知道所调用的对象是哪个类(如 Base::who()),这只有在编译器具有实际对象而不是对象的指针或引用时才会发生。转载 2020-08-26 22:39:03 · 6938 阅读 · 2 评论 -
C/C++ 中const && static && this指针
文章目录conststaticthis指针const作用:修饰变量,变量不可改变:const int var1即常量,更推荐使用const而不是以#define定义常量,因为const可以指定常量类型,而define仅仅是符号替换。修饰指针,分为两种情况:(1) const 在*前,const int * p1,int const * p2两者等价,都是说不能通过* p来修改所指向的变量的值。(2) const在*后,int * const p, p一经指定,就不能指向其他变量。这个和C++的原创 2020-08-26 18:21:18 · 171 阅读 · 0 评论 -
C语言 了解extern关键字
最重要的结论:extern在项目中不是必须的。如果在一个项目中遇到有extern声明的变量或者函数,知道其作用即可。C++中已经完全见不到extern关键字了,有更好的方式。extern主要有两个用途:extern 修饰全局变量,改变全局变量的生命周期或者作用范围让被 extern “C” 修饰的变量和函数是按照 C 语言方式编译和链接的目前用的最多的是后一种。1.extern 修饰全局变量或函数被 extern 限定的函数或变量是 extern 类型的,且被修饰的变量一定是全局的,局部变原创 2020-08-26 17:53:15 · 310 阅读 · 0 评论