C/C++
文章平均质量分 75
成长的菜鸟1018号
菜鸟一枚,希望早日脱离菜鸟
展开
-
c++中class 中的this指针
1.this指针的经典描述:当你进入一个房子后, 你可以看见桌子、椅子、地板等, 但是房子你是看不到全貌了。 对于一个类的实例来说, 你可以看到它的成员函数、成员变量, 但是实例本身呢? this是一个指针,它时时刻刻指向你这个实例本身2.this指针的使用:一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用 retu原创 2016-10-10 20:42:17 · 2108 阅读 · 0 评论 -
c语言注释转换(c注释转换成c++注释)
代码思路:分为四个模式 NUL_格式(开始读取注释)、c格式、c++格式、END模式 (结束程序)input.c: 7种 情况 // 1.一般情况/* int i = 0; */// 2.换行问题/* int i = 0; */int j = 0;/* int i = 0; */int j = 0;原创 2016-08-13 16:12:36 · 755 阅读 · 0 评论 -
c语言 数组中的sizeof()
c语言中数组中sizeof原创 2016-07-23 10:32:55 · 6655 阅读 · 0 评论 -
c语言中的getchar()和putchar()
c语言中的getchar()和putchar()的问题 简要说明 字符c 为什么声明为整型 以及EOF的问题原创 2016-07-17 19:28:33 · 2393 阅读 · 0 评论 -
素数判断中的一些自己的小问题 break
如何判断素数:所谓素数是指除了1和它本身以外,不能被任何整数整除的数。如果m不能被2~√m间任一整数整除,m必定是素数。先放出正确的代码:#include#includeint IsPrime(int a) //判断是否为素数{ int j; int k = (int)sqrt(a); for (j = 2; j <= k; j++)原创 2016-06-25 09:52:02 · 1007 阅读 · 0 评论 -
【C语言】函数运行过程-----栈帧调用
每次函数调用,都为函数开辟一块空间,成为栈帧。首先应该明白,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),我们称为栈底指针,寄存器esp指向当前的栈帧的顶部(低地址),我们称为栈顶指针。 注意:EBP指向当前位于系统栈最上边一个栈帧的底部,而不是系统栈的底部。严格说来,“栈帧底部”和“栈底”是不原创 2017-07-04 19:17:42 · 1427 阅读 · 1 评论 -
【C语言】可变参数
在C语言中学习中,我经常用到的printf、scanf就是一个参数个数可变的函数。 int printf( const char* , ...); int scanf(const char *, ...);介绍C语言中有关可变参数的宏void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, typ原创 2017-07-04 21:26:41 · 504 阅读 · 0 评论 -
设计一个类只能在堆(栈)上创建
在C++中,创建类的对象有两种方法,一种是静态建立,A a; 另一种是动态建立,调用new 操作符。静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数。动态建立类对象,是使用new运算符将对象建立在堆空间中。这个过程分为两步,第一步是执行operator new()函数,在原创 2017-07-16 01:02:06 · 1227 阅读 · 0 评论 -
【C++】#define和const的区别
‘#define 和const的区别具有以下几个区别’1.编译器处理方式 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。2.类型检查 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。3.内存空间 define – 不分配内存,给出的是立即数,有多少次使用就进行多少次替换,在内存中会有多个拷贝,消耗内存大 c原创 2017-07-09 00:09:49 · 978 阅读 · 0 评论 -
【C/C++】库函数中的字符串函数
模拟库函数的中strcpy、strncpy、memcpy、memove、strcat、 strncat、 strcmp 、strncmp 、strstr、 strchr、 strlen、原创 2017-07-09 11:50:19 · 420 阅读 · 0 评论 -
【C++】智能指针
一、简介为什么会有智能指针这个东西,智能指针又是什么东西。由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。那么就有了智能指针这个东西。二、智能指针C++STL提供了4种智能指针,包括auto_ptr、unique_ptr(sco原创 2017-08-09 22:15:07 · 762 阅读 · 0 评论 -
【C++】类型萃取
在C++中我们可以通过typeid来获取一个类型的名称(内置类型和自定义类型都可以),但是我们不能用这种方式获取来的名称做变量的声明。那么在C++中怎样识别对象的类型呢??我们可以通过类型萃取的方式来区分内置类型和自定义类型。原创 2017-04-08 22:13:14 · 636 阅读 · 0 评论 -
C语言模式实现C++继承和多态
这个问题主要考察的是C和C++的区别,以及C++中继承和多态的概念。C和C++的区别C语言是面向过程的语言,而C++是面向对象的过程。什么是面向对象和面向过程? 面向过程就是分析解决问题的步骤,然后用函数把这些步骤一步一步的进行实现,在使用的时候进行一一调用就行了,注重的是对于过程的分析。面向对象则是把构成问题的事进行分成各个对象,建立对象的目的也不仅仅是完成这一个个步骤,而是描述各个问题在解决的过原创 2017-07-28 12:36:45 · 17690 阅读 · 4 评论 -
【C++】从标准输入中读取字符串
1、cin>>cin使用空白(空格、制表符、回车)来确定字符串的结束位置。注:cin会将换行符留在输入输出队列中。测试:#include<iostream>using namespace std;int main(){ char p[100]; char q[100]; cin>>p; cout<<p; cin>>q; cout<<q; r原创 2017-08-06 15:38:14 · 4555 阅读 · 0 评论 -
【设计模式】工厂模式
工厂模式大致可以分为三类: 1、简单工厂模式 2、工厂方法模式 3、抽象工厂模式。 这三种模式逐步抽象,并且更具有一般性。 工厂模式有一种非常形象的描述,建立对象的类就像一个工厂,而需要被建立的对象就是一个个产品,在工厂中加工产品,使用产品的人不用关心产品是如何生产出来的。在软件中使用工厂模式的好处就是降低了模块之间的耦合。一、简单工厂模式只要告诉工厂所需要的产品类型,工厂就会返回需原创 2017-09-07 17:11:03 · 463 阅读 · 0 评论 -
【C语言】实现俄罗斯方块
学习了C语言,写一个俄罗斯方块,代码绝对可以运行 大神勿笑,只适合初学者 本人也是菜鸟1、考虑怎么存储俄罗斯方块俄罗斯方块的形状一共有19种类型,如果拿数组来表示的话,可能会比较会浪费空间(网上有很多实现代码) 考虑到每种方块形状的范围是4 *4的小方块,用 字模点阵的方式来存储,即设置一个4行4列的数组,元素置1即代表这个位置有小 方块,元素置0即代表这个位置无小方块,这个整个的4原创 2017-05-05 22:10:10 · 61151 阅读 · 14 评论 -
【C语言】俄罗斯方块的源代码
GitHub:【C语言】实现俄罗斯方块源代码Head.h#ifndef _HEAD_H_#define _HEAD_H_#include<graphics.h>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<time.h>#include<string.h>#define _CRT_SECURE_NO_WARNI原创 2017-05-05 22:15:46 · 103708 阅读 · 29 评论 -
什么情况下c++编译器会合成默认构造函数
谈什么情况下c++编译器会合成默认构造函数转载 2016-11-10 17:19:16 · 1582 阅读 · 2 评论 -
浅谈c++虚函数 虚继承的虚表剖析
c++中 虚表的剖析原创 2016-11-13 13:07:26 · 1167 阅读 · 0 评论 -
C/C++ 的函数名修饰规则以及函数调用约定
简述 C/C++ 的函数名修饰规则以及函数调用约定转载 2016-11-14 20:15:56 · 3939 阅读 · 0 评论 -
总结c++类的构造函数 拷贝构造函数 析构函数 赋值运算符重载的特点以及函数调用顺序
对 c++类成员函数中的构造函数 拷贝构造函数 析构函数 赋值运算符重载的一些特点以及函数调用顺序,并附上例子,希望对大家有帮助,有错误大家可以指出来。原创 2016-10-18 19:04:40 · 4450 阅读 · 2 评论 -
c++中string类常用函数总结
标准c++中string类函数介绍注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据转载 2017-03-28 19:06:36 · 660 阅读 · 0 评论 -
C/C++中static 关键字的总结
static的用法有两种:一种是面向过程程序设计中的static,另一种是面向对象程序设计中的static。前者主要是涉及变量和函数,后者主要是说明static在类中的作用。先介绍下典型C程序存储空间布局正文段CPU执行的机器指令部分。通常,正文段是可共享的,所以即使是经常环境指针环境表环境字符串执行的程序(如文本编辑程序、C编译程序、s h e l l等)在存储器中也只需有一个副本,另外,正文段常原创 2017-04-06 22:03:02 · 744 阅读 · 0 评论 -
C/C++中const关键字
const经常被用到,所以今天总结一下const关键字的用法,常用的场景为修饰变量(C/C++不同),修饰指针和引用,修饰函数参数,修饰函数返回值,修饰函数定义体(类 成员函数)原创 2017-04-07 16:45:07 · 723 阅读 · 0 评论 -
int*转换成char*,求strlen,涉及大小端问题以及栈
#include<stdio.h>#include<string.h>int main(){int a[2000];char *p = (char*)a;for( int i = 0; i < 2000; i++)a[i] = -1 - i;printf( "%d\n", strlen(p));return 0;}这是一道涉及大小端的问题以及负数在计算机中的存储。 按着程序开始原创 2017-04-06 13:19:14 · 3077 阅读 · 1 评论 -
【c++】必须在类的初始化列表中初始化的的几种情况
1. 类成员为const类型2. 类成员为引用类型#include using namespace std;class A{ public: A(int &v) : i(v), p(v), j(v) {} void print_val() { cout << "hello:" << i << " " << j << endl;}原创 2017-04-10 21:49:56 · 827 阅读 · 0 评论 -
c++继承知识总结
c++继承相关的知识 三种继承权限 多继承中的菱形继承 以及 虚继承原创 2016-11-06 11:44:57 · 529 阅读 · 0 评论 -
为什么构造函数不可以声明为虚函数,而析构函数可以
构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。转载 2016-11-10 12:41:22 · 1348 阅读 · 0 评论 -
【c++】实现一个不能被继承的类
C++如何设计一个类,是该类不能被继承?利用私有构造函数,友元和虚继承的特性来实现原创 2017-04-20 20:25:13 · 3553 阅读 · 0 评论 -
【C++】volatile 关键字
这是在MSDN中对关键字“volatile”的说明:The volatile keyword is a type qualifier used to declare that an object can be modified in the program by something other than statements, such as the operating system, the hardw原创 2017-05-03 12:39:42 · 6015 阅读 · 1 评论 -
c++中转换类型的4个关键字
c++中与类型转换相关的关键字:static_cast, const_cast, reinterpret_cast, dynamic_cast原创 2017-01-17 19:11:00 · 691 阅读 · 0 评论 -
c++实现的string类
c++实现的string类原创 2017-01-12 18:56:28 · 1526 阅读 · 0 评论 -
【C++】实现Singleton模式
单例模式,就是设计一个类,我们只能生成该类的一个实例。 而单例模式的实现方式有两种:懒汉模式和饿汉模式懒汉模式懒汉式是典型的时间换空间,也就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间。当然,如果一直没有人使用的话,那就不会创建实例,则节约内存空间。实现1、教科书构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存原创 2017-07-29 17:37:32 · 735 阅读 · 1 评论