C/C++
陨落烟雨
选择对的事情坚持着
展开
-
(C/C++学习笔记)操作符重载的两种方法
#include "iostream"using namespace std;//a+biclass Complex{private: int a; int b; //通过友元函数实现+操作 friend Complex operator+(Complex &c1, Complex &c2);public: Complex(int a = 0, i原创 2015-08-08 14:39:06 · 733 阅读 · 0 评论 -
C语言基本数据类型
基本数据类型不需要刻意记,用到的时候sizeof就可以知道大小是多少。输出的方式还是需要记一下。#include <stdio.h>#include <stdlib.h>//引入头文件//编译的时候去找对应的函数,名字不能一样,c++可以,它有命名空间。/** * int %d * short %ld * float %f * double %lf * char %c *原创 2017-03-14 00:08:39 · 468 阅读 · 0 评论 -
C语言动态内存分配
C语言动态内存分配C语言分配内存大小的一些方法malloc(内存大小),用来分配一个固定的内存大小realloc(需要扩容的首地址,分配的内存大小),用来进行内存重新分配(内存不够用了,就在原来的内存地址上去扩容)calloc(长度,步长),内存大小=长度*步长,效果与malloc一样#include <stdio.h>#include <stdlib.h>//创建一个数组,动态指定数组大原创 2017-03-13 21:09:00 · 558 阅读 · 1 评论 -
MakeFile编写注意事项
hello.out:max.o min.0 hello.c gcc max.o min.o hello.c -o hello.out 注意vi下的tab键与其它操作的不同 max.o:max.c gcc -c max.c min.o:min.c gcc -c min.c hell原创 2016-03-02 12:27:47 · 471 阅读 · 0 评论 -
(C/C++学习笔记操作符重载入门)
#include "iostream"using namespace std;//a+biclass Complex{public: int a; int b;public: Complex(int a = 0, int b = 0) { this->a = a; this->b = b; } void pri原创 2015-08-08 14:12:31 · 545 阅读 · 0 评论 -
(C/C++学习笔记)Copy构造函数应用场景
Copy构造函数应用场景#include"iostream"using namespace std;class Location{private: int X,Y;public: Location(int xx = 0 , int yy = 0) { X = xx; Y = yy; cout << "Constructor原创 2015-08-07 09:55:44 · 768 阅读 · 0 评论 -
(C/C++学习笔记)线性表的顺序存储
线性表接口声明#ifndef __MY_SEQLIST_H__ #define __MY_SEQLIST_H__typedef void SeqList;typedef void SeqListNode;SeqList* SeqList_Create(int capacity);void SeqList_Destroy(SeqList* list);void SeqList_Clear(Se原创 2015-08-20 00:31:27 · 554 阅读 · 0 评论 -
(C/C++学习笔记)函数模板遇上函数重载
/* 1 函数模板可以像普通函数一样被重载 2 C++编译器优先考虑普通函数 3 如果函数模板可以产生一个更好的匹配,那么选择模板 4 可以通过空模板实参列表的语法限定编译器只通过模板匹配*//*函数模板不允许自动类型转化普通函数能够进行自动类型转换*/#include <iostream>using namespace std;int Max(int a原创 2015-08-19 10:00:06 · 532 阅读 · 0 评论 -
(C/C++学习笔记)函数模板的深入理解
#include "iostream"#include "cstdlib"using namespace std;/*函数模板的深入理解 ― 编译器并不是把函数模板处理成能够处理任意类型的函数 ― 编译器从函数模板通过具体类型产生不同的函数 ― 编译器会对函数模板进行两次编译 ― 在声明的地方对模板代码本身进行编译 ― 在调用的地方对参数替换后的代码进行编原创 2015-08-19 10:09:53 · 561 阅读 · 0 评论 -
(C/C++学习笔记)指针做函数参数形成回调
#include "stdio.h"#include "stdlib.h"#include "string.h"int add(int a, int b);//第二个函数 是函数指针 做函数参数 //在这个函数里面,就可以通过这个函数指针,去调用外部的函数,形成一个回调int libfun( int (*pDis)(int a, int b) );int main(void){原创 2015-08-06 09:43:14 · 510 阅读 · 0 评论 -
(C/C++学习笔记)函数模板加强
#include "iostream"using namespace std;//定义模板函数,T 为传入的类型template<typename T>void sortArray(T *a, int num){ int i =0, j = 0; T tmp; for (i=0; i<num; i++) { for (j=i; j<num; j+原创 2015-08-18 09:57:04 · 480 阅读 · 0 评论 -
(C/C++学习笔记)泛型编程基础
#include "iostream"using namespace std;void swap(int &a, int &b){ int c ; c = a; a = b; b = c;}void swap(float &a, float &b){ float c ; c = a; a = b; b = c;}void原创 2015-08-18 09:52:41 · 602 阅读 · 0 评论 -
(C/C++学习笔记)临时对象深入理解
临时对象深入理解/*1 C++中提供了初始化列表对成员变量进行初始化2 使用初始化列表出现原因:1.必须这样做:如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,而没有默认构造函数,这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数,如果没有初始化列表,那么他将无法完成第一步,就会报错。2、类成员中若有const修饰,必须在对原创 2015-08-05 14:31:56 · 762 阅读 · 0 评论 -
(C/C++学习笔记)指针做函数参数形成回调练习
指针做函数参数练习#include "stdio.h"#include "stdlib.h"#include "string.h"int add(int a, int b);//第二个函数 是函数指针 做函数参数 //在这个函数里面,就可以通过这个函数指针,去调用外部的函数,形成一个回调int libfun( int (*pDis)(int a, int b) );int main(v原创 2015-08-17 13:58:29 · 425 阅读 · 0 评论 -
(C/C++ 学习笔记)函数指针语法基础
#include "stdio.h"#include "stdlib.h"#include "string.h"int array2[10];//定义一个数组类型typedef int (ArrayType)[10];//定义一个指向数组的 数组指针类型 typedef int (*PArrayType)[10]; // int *void main_数组类型复习(){ //原创 2015-08-17 13:56:56 · 655 阅读 · 0 评论 -
(C/C++学习笔记)多继承的二义性
#include "iostream"using namespace std;class base{public: int k; void printI() { //cout<<i<<endl; }protected:private:};class base1 : virtual public base{public: int i;原创 2015-08-09 20:18:17 · 574 阅读 · 0 评论 -
C语言关于内存的一些描述
内存的一些描述为了更加好的理解Java中的内存模型,学习C中的内存分配会很有帮助。#include <stdio.h>#include <stdlib.h>int main() { int a[1024 * 1024 * 10];//静态内存分配,直接在栈内存 /** * c语言内存分配 * 1,栈区(自动释放、自动分配、超出限制提示stack overflo原创 2017-03-14 00:13:30 · 460 阅读 · 0 评论