c++--语言本身
c++
- 面向对象概念(cout cin 类、对象 面向对象和面向过程求解问题)
- 易犯错误模型(引入成员函数的必要性)
- C语言和C++语言的关系
- namespace 定义(嵌套)、使用、标准命名空间std、iostream中没有引入std
- 实用性增强(变量定义)、全局变量定义检查(严格)、变量类型检查严格、所有变量和函数定义必须有类型
- struct关键字(c中不是新类型),与class功能相同
- 类型加强 bool 1个字节,但只有true和false
- c++中三目运算符 返回变量自身 c中返回的是变量的值 (可做左值)
初学c++有点小激动
- 内联函数(请求、函数调用处插入函数体,压栈,跳转和返回的开销,与带参数的宏区别)
- 默认参数(形参有一个默认值,有一个是默认参数,则右边的均是默认参数才行)
- 函数占位参数 运算符重载后置++ int func(int a, int b, int ) 在函数体内部无法使用占位参数
- C++对C的函数扩展
- 内联函数(请求、函数调用处插入函数体,压栈,跳转和返回的开销,与带参数的宏区别)
- 默认参数(形参有一个默认值,有一个是默认参数,则右边的均是默认参数才行)
- 函数占位参数 运算符重载后置++ int func(int a, int b, int ) 在函数体内部无法使用占位参数
- 默认参数和占位参数在一起 int func(int a, int b, int =0)
- 函数重载
- 概念(函数名称一样 函数参数不一样)
- 函数返回值不是判断标准
- 调用规则(按照名称、个数、类型)
- 函数重载遇上函数默认参数,调用是二义性
- 函数指针语法:定义函数类型 定义函数指针类型 定义函数指针变量
- 函数重载和函数指针在一起
- 默认参数和占位参数在一起 int func(int a, int b, int =0)
- 函数重载
- 概念(函数名称一样 函数参数不一样)
- 函数返回值不是判断标准
- 调用规则(按照名称、个数、类型)
- 函数重载遇上函数默认参数,调用是二义性
- 函数指针语法:定义函数类型 定义函数指针类型 定义函数指针变量
- 函数重载和函数指针在一起
命名空间
#include <iostream>
using namespace std;
iostream 提供一个叫命名空间的东西, 标准的命名空间是 std
#include <iostream>
//方式二:
#if 0
using std::cout; //声明命名空间中的一个变量
using std::endl;
using std::cin;
#endif
//方式三
using namespace std;
int main(void)
{
int a = 0;
#if 0
//方式一:
std::cout << "nihao shijie" << std::endl;
std::cout << "nihuai shijie" << std::endl;
#endif
cout << "nihuai shijie" << endl;
cin >> a;
return 0;
}
命名空间的定义
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
//定义一个命名空间
namespace spaccA {
int g_a = 10;
}
namespace spaceB {
int a = 20;
namespace spaceC {
struct teacher
{
int id;
char name[64];
};
}
namespace spaceD {
struct teacher
{
int id;
char name[64];
};
}
using namespace spaceC;
}
int main(void)
{
//using spaccA::g_a;
using namespace spaccA;
int a = 20;
cout << g_a << endl;
//spaceB::spaceC::teacher t1;
//using spaceB::spaceC::teacher;
//teacher t1;
//using namespace spaceB::spaceC;
//spaceB::spaceC::teacher t1;
using namespace spaceB;
teacher t1;
t1.id = 10;
//spaceB::spaceD::teacher t2;
//t2.id = 20;
return 0;
}
c++语言增强的地方
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
//c++语言对全局变量的定义检测能力增强了
int g_val; //bss段
//int g_val = 20;
struct student
{
char name[64];
int id;
};
void test1()
{
//定义一个变量 可以随用岁定义
int i = 0;
for (int i = 0; i < 10; i++)
{
}
int b = 20;
cout << "b " << b << endl;
}
void test2()
{
student s1;
s1.id = 20;
}
int foo()
{
return 10;
}
int g(int a)
{
return 10;
}
//bool类型
void test3()
{
//true 1 false 0 只能取这两个值
bool flag = true;
flag = false;
flag = true;
cout << "flag(true)" << flag << endl;
flag = false;
cout << "flag(true)" << flag << endl;
flag = -20;
cout << "flag(true)" << flag << endl;
cout << sizeof(flag) << endl;
}
void test4()
{
int a = 10;
int b = 20;
int c = 0;
c = (a < b) ? a : b;
cout << c << endl;
//! 三目运算符 可以当左值。
((a < b) ? a : b) = 50;
//a = 50;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
#define A 20
// const int f = 20;
}
void test5()
{
const int a = 10; //a 是真正的常量
int *p = (int*)&a;
*p = 20;//改变的是临时开辟的temp变量
cout << "a =" << a << endl;
cout << "*p=" << *p << endl;
int array[a] = { 0 };
cout << A << endl;//20
//cout << 10 << endl;
// cout << f << endl;
}
enum season
{
SPR = 0,
SUM,
AUT,
WIN
};
void test6()
{
enum season s = AUT;
if (s == AUT) {
cout<<"hello";
}
}
int main(void)
{
//test2();
//test3();
//g(10, 20, 30);
test4();
test5();
test6();
return 0;
}
c++语言增强的地方
#include <stdio.h>
int g_val; //bssśÎ
int g_val = 20;//data
struct student
{
char name[64];
int id;
};
foo()
{
return 10;
}
int g(int a)
{
return 10;
}
void test4()
{
int a = 10;
int b = 20;
int c = 0;
//×óÖľ ÓŇÖľ
c = a < b ? a : b;
printf("c = %d\n", c);
*(a < b ? &a : &b )= 50;
//10
//10 = 50;
printf("a = %d\n", a);
}
void test5()
{
const int a = 10;
//int array[a] = { 0 };
int *p = &a;//一引用a的地址,并未创造新的空间,p指向a
*p = 70;
printf("a = %d\n", a);
}
enum season
{
SPR = 0,
SUM,
AUT,
WIN,
WIN1,
WIN2,
WIN64,
};
void test6()
{
enum season s = 2;
s = 64;
if (s == 2) {
//
}
}
int main(void)
{
int a = 10;
int b = 20;
struct student s1;
s1.id = 20;
test4();
//,,,
printf("%d\n", g_val);
//g(10,20,30,40,50);
printf("-----------------\n");
test5();
}
c++--语言本身的更多相关文章
- C语言本身并不提供输入输出语句
C语言本身并不提供输入输出语句,输入和输出操作是由函数来实现的.在C标准函数库中提供了一些输入输出函数,例如,printf函数和scanf函数.在使用他们时,千万不要误认为他们是C语言提供的“输入输出 ...
- c++ 11开始语言本身和标准库支持并发编程
c++ 11开始语言本身和标准库支持并发编程,意味着真正要到编译器从语言和标准库层面开始稳定,估计得到17标准出来.14稳定之后的事情了,根据历史经验,新特性的引入到稳定被广泛采用至少要一个大版本的跨 ...
- php性能优化三(PHP语言本身)
0.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册 ...
- 用Go语言做产品半年的一些感觉
用Go语言做产品刚好半年,有一些感觉跟大家说道说道. 在使用Go之前,我常常想象,无法使用先进的Debug工具会对工作进度造成多么巨大的影响.甚至在Visual Studio的娇惯下认为,不能调试基本 ...
- 别语言之争了,最牛逼的语言不是.NET,也不是JAVA!
谁都不用说,博客园明显的偏.NET,C#的讨论一出现,推荐讨论热火朝天,而发点JAVA的东西,应者寥寥.一旦有出现两大派系的竞争,那绝对是头条.每天都看,早就麻木了. 研二的我浸淫.NET已经三四年, ...
- Linus:C++是一种糟糕的语言
本文内容摘自http://blog.csdn.net/turingbook/article/details/1775488 C++是一种糟糕的(horrible)语言.而且因为有大量不够标准的程序员在 ...
- C 语言学习 第六次作业总结
本次作业,同学们开始学习函数.通过之前和同学们的沟通,似乎同学们在这里遇到的问题比较多.下面,我先帮同学们整理下函数的相关知识点. 什么是函数 首先,需要明确的是,什么是函数.所谓函数,也就是一段有名 ...
- C语言栈调用机制初探
学习linux离不开c语言,也离不开汇编,二者之间的相互调用在源代码中几乎随处可见.所以必须清楚地理解c语言背后的汇编结果才能更好地读懂linux中相关的代码.否则会有很多疑惑,比如在head.s中会 ...
- 《C程序设计语言》- 字符输入和输出
书籍介绍: 本书是机械工业出版社的第2版·新版,作者两位,其中一位是C语言之父Dennis Ritchie,另一位是Brian Kernighan,也是一位牛人. 本书的目的是帮助读者学习如何用C语言 ...
随机推荐
- 读完此文让你了解各个queue的原理
队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作.通俗来讲,就是一个队列中,早来的排在前面,后来的就在队尾,而这个队列大多只有一个出口和入口的单项队列.Queue的重要 ...
- Stream系列(一)Filter方法使用
Filter 是过滤器,也可以当查询方法使用 EmployeeTestCase.java package com.example.demo; import lombok.extern.log4j.Lo ...
- PHP+Redis实现延迟任务,实现自动取消与完成订单
简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件) : (A)业务场景: 1.当一个业务触发以后需要启动一个定时任务,在指定时间内再去执行一个任务( ...
- Java 大黑话讲解设计模式 -- UML类图
目录 1.啥是UML类图? 2.UML类图有啥用? 3.正式理解UML类图 4.使用idea画第一个UML类图 5.类之间的关系图[必须牢记] 6.类之间的关系 6.1.依赖 6.2.泛化 6.3.实 ...
- DVWA学习之SQL注入
DVWA学习之SQL注入 环境工具 dvwa 1.9 phpstudy firefox burpsuite 实验步骤 一.设置安全级别为LOW 1. 登录DVWA,并将安全级别设置为LOW 2. 进入 ...
- Linux发展史及安装
操作系统 什么是操作系统 人与硬件的中介/桥梁 操作系统的组成 操作系统可以理解为一个鸡蛋 蛋黄 内核 Linux内核 托瓦斯 鸡蛋清 命令解释器(s ...
- jQuery.hasClass() 函数详解
jQuery.hasClass() 函数详解 hasClass()函数用于指示当前jQuery对象所匹配的元素是否含有指定的css类名. 该函数属于jQuery对象(实例). 语法 JavaScrip ...
- 为啥HashMap的默认容量是16?
集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生. 在日常开发中,我们经常会像如下方式以下创建一个HashMap: Map& ...
- 利用 Flask 动态展示 Pyecharts 图表数据的几种方法
本文将介绍如何在 web 框架 Flask 中使用可视化工具 pyecharts, 看完本教程你将掌握几种动态展示可视化数据的方法,不会的话你来找我呀- Flask 模板渲染 1. 新建一个项目fla ...
- 使用jieba分析小说太古神王中,男主更爱谁?去文章中找答案吧!#华为云·寻找黑马程序员#
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...