c++自学笔记

news2024/11/24 19:11:44

本笔记为从菜鸟教程边学边记录的笔记---》C++ 教程 | 菜鸟教程

面向对象程序设计

  • 封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。

  • 继承(Inheritance):继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。这样可以提高代码的复用性和可扩展性。

  • 多态(Polymorphism):多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,可以提高代码的灵活性和可读性。

  • 抽象(Abstraction):抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。

hello word

#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
   SetConsoleOutputCP(65001);
   cout << "hello world!"<<endl; //也可以用\n代替endl;都是换行的意思
   return 0;
}

变量别名!

#include <iostream>
using namespace std;
int main()
{
    typedef int it;//int的别名 是it
    it a;//以后就可以用it来定义变量
}

枚举类型

默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 5。

#include <iostream>
using namespace std;
int main()
{
   enum {green,blue=5,red} c;
   c=red;
   cout <<"sdsdds" <<c;
}

类型转换-静态转换

#include <iostream>
#include <typeinfo>
#include <windows.h>
using namespace std;
int main()
{
   SetConsoleOutputCP(65001);
   //这个是c++的断点 这配置c语言也支持断点
   int a = 10;
   //静态转换 数据 类型;
   float b=static_cast<float>(a);
   cout <<b<<"是"<<typeid(b).name()<<"类型";

}

 你像打印 i  就是int  打印 f   就是float;就是类型首字母

类型转换-常量转换

#include <iostream>
#include <typeinfo>
#include <windows.h>
using namespace std;
int main()
{
   SetConsoleOutputCP(65001);
   //这个是c++的断点 这配置c语言也支持断点
   const int a = 10;
   //常量转换
   int &b=const_cast<int&>(a);
   b=11;
   cout << b;
}

extern关键词用法

顺带你还知道下 .cpp怎么引入另一个.cpp的文件。

参考博主写的另一篇博文===》c++的extern用法理解_雪狼之夜的博客-CSDN博客

局部变量

局部作用域:在函数内部声明的变量具有局部作用域,它们只能在函数内部访问。局部变量在函数每次被调用时被创建,在函数执行完后被销毁。

#include <iostream>
using namespace std;
int main()
{
  int a=2;
  cout<<"局部变量a="<<a<<endl;
}

全局变量

全局作用域:在所有函数和代码块之外声明的变量具有全局作用域,它们可以被程序中的任何函数访问。全局变量在程序开始时被创建,在程序结束时被销毁。

#include <iostream>
using namespace std;
int a=2;
int main()
{
  cout<<"全局变量a="<<a<<endl;
}

块变量

块作用域:在代码块内部声明的变量具有块作用域,它们只能在代码块内部访问。块作用域变量在代码块每次被执行时被创建,在代码块执行完后被销毁。

#include <iostream>
using namespace std;

int main()
{
   int a=1;
   {
      int a=2;
      cout<<"块变量a="<<a<<endl;
   }
  cout<<"函数变量a="<<a<<endl;
}

<string> 

#include <iostream>
#include <string>
using namespace std;

int main()
{
   string a="hello world";//或者写成string a("hello world") 等效
   a+=" 你好啊";
   cout<< a<<endl;
}

 类

#include <iostream>
using namespace std;
class Box{
   public:
      int a;
      int b;
      int chen(void){ //申明和定义在类里面
         return a*b;
      };
      void setVal(int,int);//先在类里面申明
      
};
void Box::setVal(int x,int y){//在类外面定义   范围解析运算符 :: 
   a=x;
   b=y;
};
int main(){
   Box box1;
   box1.setVal(3,2);
   cout << box1.chen();
}

类私有成员

#include <iostream>
using namespace std;
class Box{
   private://类私有,只有成员可以调用 也就是说你不可以通过box1.a来调用 ,这些变量其实你默认不用写private 这个变量,只要放在最上面他默认就是 私有
      int a,b;
   public://
      int c=10;
      int chen(void){ //申明和定义在类里面
         return a*b;
      };
      void setVal(int,int);//先在类里面申明
};
void Box::setVal(int x,int y){//在类外面定义
   a=x;
   b=y;
};
int main(){
   Box box1;
   cout<< box1.c<<endl;
   box1.setVal(3,2);
   cout << box1.chen();
}

看博主另一篇博文=》c++类 笔记_雪狼之夜的博客-CSDN博客

.cpp调用 .cpp和h的demo

看博主另一篇博文=》.cpp调用 .cpp和h的demo_雪狼之夜的博客-CSDN博客

数组指针

#include <iostream>
using namespace std;
const int Max=3;
int main(){
   int arr[Max]={100,200,300};
   int *p;
   p=arr;
   for(int i=0;i<Max;i++){
      cout << "arr["<<i<<"]="<<*p<<endl;
      p++;
   }
}

今天也算理解了,p=arrr其实等价于p=&arr[0]  ,也就是说数组指针也可以变成下面这种写法。

我写一个从a[2]往a[0]输出的操作,你们理解下

#include <iostream>
using namespace std;
const int Max=3;
int main(){
   int arr[Max]={100,200,300};
   int *p;
   p=&arr[2];//等价于p=&arr[0]  也就是说
   for(int i=0;i<Max;i++){
      cout << "arr["<<i<<"]="<<*p<<endl;
      p--;
   }
}

数组指针另一种写法

#include <iostream>
using namespace std;
const int Max=3;
int main(){
   int arr[Max]={100,200,300};
   *(arr+2)=500;
   cout <<arr[2]<<endl;
   arr[2]=100;
   cout <<arr[2];
}

 *(arr+2)其实就等于 arr[2];  也就说说  等价于下面

#include <iostream>
using namespace std;
const int Max=3;
int main(){
   int arr[Max]={100,200,300};
   int *p;
   p=arr;
   cout<< *(p+2);
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/472339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vsftpd.conf各参数含义

文章目录 初始vsftdp.conf翻译后需修改参数write_enableYES&#xff08;启用任何形式的FTP写入命令&#xff09;userlist_file/etc/vsftpd.user_list、userlist_enableYES、userlist_denyNOlocal_umask022&#xff08;放开权限&#xff09;chroot_local_userYES&#xff08;限定…

【容器文件系统】了解容器 overlay 文件系统和 /var/lib/docker/overlay2下目录的作用

转载自 浅析 Docker overlay2 文件结构 docker(5): 层 朱双印 目的 有这个问题困惑着我&#xff1a;容器删除 docker rm 后&#xff0c;docker cp 到容器内的文件&#xff0c;在 /var/lib/docker/overlay2 目录中是否还会存在 答案&#xff1a;容器删除后 docker rm 后&…

银河麒麟操作系统,安装Gitlab 基于docker

不废话。直接上干货 操作系统信息 ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server release V10 (Sword) Kernel: 4.19.90-24.4.v2101.ky10.aarch64 Build: Kylin Linux Advanced Server release V10 (SP2) /(Sword)-aarch64-…

【电商必学】 WhatsApp 全新攻略:什么是交互式消息模板

网购与WhatsApp等社交通讯平台有着密不可分的关系&#xff0c;为什么这么说呢&#xff1f;因为基本上所有的网购的平台都会提供查询、下单方式给客户&#xff0c;而WhatsApp是全世界使用率最高的通讯平台&#xff0c;所以大部分电子商户都会选择WhatsApp Business与电子商务连接…

「C/C++」C/C++静态链接库与动态链接库

博客主页&#xff1a;何曾参静谧的博客 文章专栏&#xff1a;「C/C」C/C学习 目录 相关术语案例环境&#xff1a;Win10VS2019一、链接库介绍二、静态链接库&#xff08;Static Library&#xff09;2.1、静态库优缺点2.2、静态库的创建2.2.1、创建静态库项目2.2.2、添加.h头文件…

实战案例分享 | 临近假期,项目突发各种问题…

五一的调休补班一下子把三个星期的作息成功打乱&#xff0c;大家在吐槽的同时也不忘给自己延长假期&#xff0c;平时加班攒下的假期都充分利用上了。但办公室的项目经理小李这两天总长吁短叹&#xff0c;感觉假期也要随时随地办公。一问才知原来是临近假期时&#xff0c;项目突…

ARL灯塔(无需VPS版)

标题随便写&#xff0c;能看到都是有缘人 搭建灯塔那么繁琐的步骤&#xff0c;远不如爆破一个灯塔是吧(狗头) 而且还可能买不起VPS的情况(例如我) 那不如写一个脚本去爆破灯塔的弱口令 整治网络安全 从你我做起 fofa语法&#xff1a; icon_hash"1708240621"…

零售新时代,零售行业数字化破局的新路径

深夜11点&#xff0c;门店店长小张还在加班&#xff0c;因为小张还需要盘点今日销售额、库存等信息&#xff0c;这些整理好的数据需要手动录入至总公司的系统中。 多门店的零售行业中&#xff0c;这是他们每天的工作日常&#xff1a;门店先通过excel做手工报表&#xff0c;再把…

ubuntu20.04之--CUDA的安装

文章目录 CUDA文件的下载CUDA文件下载地址 CUDA文件的安装安装结果 环境变量的配置CUDA安装结果验证 CUDA文件的下载 CUDA文件下载地址 https://developer.nvidia.com/cuda-toolkit-archive 选择合适自己电脑的版本进行下载&#xff0c;下载命令如下&#xff1a; $ wget htt…

【产品分析】如何利用咖喱外卖店铺数据进行营销分析Python

在外卖平台上经营咖喱店铺时&#xff0c;海量的订单数据和用户评价等信息将成为商家优化营销策略的重要依据。然而&#xff0c;面对大量的数据&#xff0c;如果没有合适的分析方法&#xff0c;这些数据就变得毫无意义。本文将介绍如何使用Python中常用的可视化工具和方法&#…

Stable Diffusion使用方法

SD的本地安装教程有很多我就不重复了&#xff0c;这里主要是记录我在使用SD Webui的过程中遇到的问题&#xff0c;总结的一些提升出图效率&#xff0c;出好图概率的经验。 先搞几张看看效果 二次元妹妹 高达 &#xff1f; Ok&#xff0c;以上只是一小部分成品 &#xff0c;属…

2023年易派客工业品展圆满落幕 期待与您再次相遇

党的二十大指出&#xff0c;建设现代化产业体系。坚持把发展经济的着力点放在实体经济上&#xff0c;推进新型工业化&#xff0c;加快建设制造强国、质量强国、航天强国、交通强国、网络强国、数字中国。 中国石化深入学习贯彻党的二十大精神&#xff0c;以打造世界领先洁净能源…

【严重】Strapi <4.5.6 远程代码执行漏洞(POC)(CVE-2023-22621)

漏洞描述 Strapi是Node.js开发的开源内容管理系统&#xff0c;Users-Permission 插件的电子邮件模板系统用于管理与用户权限相关的电子邮件通知(默认启用)。 Strapi 4.5.6之前版本中&#xff0c;Users-Permission 插件的电子邮件模板系统存在 SSTI&#xff08;服务器端模板注…

Linux必会100个命令(五十九)journalctl

不带参数&#xff0c;将输出所有的日志。 使用-r参数&#xff0c;输出为反序 使用-f查看最新的日志 使用-n 输出指定行数 使用--since和--until输出一段时间内的日志 查看昨天的日志&#xff1a; journalctl --since yesterday 查看10点以后2小时的日志&#xff1a; journal…

票务将引领生活方式

随着五一假期临近&#xff0c;很多人已经开始筹划假期出行计划&#xff0c;门票作为出行中最重要的一环&#xff0c;也成为了大家关注的重点。因为门票不仅能看出景区的人气&#xff0c;也能体现出景区的特色。 虽然现在很多景区都有数字化票务系统&#xff0c;但大多只能实现…

制药专业转行软件测试,带我的师傅在这干了两年半,最终还是跑路了......

故事的开始 最近这几天有点忧伤&#xff0c;因为带我的师傅要跑路了&#xff0c;嗯&#xff0c;应该说已经跑路了&#xff0c;他是制药专业的&#xff0c;已经在这个公司干了两年半了。其实今年3月份的时候他就跟我说他要跑路了&#xff0c;然后我说&#xff0c;要不你先把五一…

成人高考入学考试,考什么内容?

一、成考考试科目考试总分&#xff1a;高起专&#xff08;450分&#xff09;、高起本&#xff08;600分&#xff09;、专升本&#xff08;450&#xff09; 高起专主要考&#xff1a;语文、数学&#xff08;文数/理数&#xff09;和外语 高起本主要考&#xff1a;语文、数学(文…

一款支持全文检索、工作流审批、知识图谱的企事业知识库

一、项目介绍 一款全源码&#xff0c;可二开&#xff0c;可基于云部署、私有部署的企业级知识库云平台&#xff0c;一款让企业知识变为实打实的数字财富的系统&#xff0c;应用在需要进行文档整理、分类、归集、检索、分析的场景。 获取方式q:262086839 为什么建立知识库平台&…

openpnp - Smoothieware project build

文章目录 openpnp - Smoothieware build概述笔记用vs2022打开工程, 进行code review, 编译工程现在来看看X-PAXES的问题查一下我的配置文件中 mm_per_arc_segment 配置项, 在官方文档中没有说明的问题剩下事情, 就是看逻辑了.END openpnp - Smoothieware build 概述 在自己设…

Centos7安装Redis

一、安装gcc依赖 由于 redis 是用 C 语言开发&#xff0c;安装之前必先确认是否安装 gcc 环境&#xff08;gcc -v&#xff09;&#xff0c;如果没有安装&#xff0c;执行以下命令进行安装 [rootlocalhost local]# yum install -y gcc 二、下载并解压安装包 [rootlocalhost l…