首页 > 编程语言 >C++基础知识

C++基础知识

时间:2023-07-04 19:47:01浏览次数:52  
标签:p1 cout int age C++ 基础知识 Person name

1.类

 1 //创建类
 2 class Person{
 3 
 4 //公共的属性
 5 public:
 6     void setAge(int age){
 7         this->age=age;
 8     }
 9   ~Person{} //析构函数
10     void setName(string name){
11         this->name=name;
12     }
13 
14     int getAge(){
15         return this->age;
16     }
17 
18     string getName(){
19         return this->name;
20     }
21 //保护的属性
22 protected:
23 
24 //私有的属性
25 private:
26     int age;
27     string name;
28 };

2.实例化对象

 1    //实例化(创建对象)
 2     Person p1;
 3     p1.setAge(18);
 4     p1.setName("zhangsan");
 5     cout << "age:" << p1.getAge() << ",name:" << p1.getName() << endl;
 6 
 7     Person *p2 = new Person();
 8     p2->setAge(20);
 9     p2->setName("lisi");
10     cout << "age:" << p2->getAge() << ",name:" << p2->getName() << endl;
11 
12     delete p2;//删除堆内存的对象

3.类的继承

1 //类的继承
2 class Student : public Person{
3 public:
4     int cls;
5 };

4.继承实例化

1     Student s;
2     s.setAge(20);
3     s.setName("wangwu");
4     s.cls=1;
5     cout << "age:" << s.getAge() << ",name:" << s.getName() << ",banji:" << s.cls <<endl;

5.函数重载(以构造方法重载为例)

  返回值类型/参数类型/参数顺序不同的相同名字函数。

 1 //创建类
 2 class Person{
 3 public:
 4     Person(){
 5 
 6     }
 7 
 8     Person(int age){
 9         this->age=age;
10     }
11 
12     int age;
13 };

实例化

1     Person *p1=new Person();
2     p1->age=18;
3     cout << p1->age << endl;
4 
5     Person *p2 = new Person(20);
6     cout << p2->age << endl;

6.命名空间

1 //创建命名空间
2 namespace A{
3     int age=20;
4 }
5 
6 //使用命名空间
7 using namespace A;
8 
9 cout << A::age << endl;

标签:p1,cout,int,age,C++,基础知识,Person,name
From: https://www.cnblogs.com/qingfeng515/p/17526795.html

相关文章

  • FreeWheel基于Go的实践经验漫谈——GC是大坑(关键业务场景不用),web框架尚未统一,和c++性
    Go语言是FreeWheel公司目前主要力推的一个方向,在其看来,面向服务的架构的大环境中,Go非常适合做一些功能相对独立、功能比较明确的微服务的语言。在结合已有的各种编程语言,计算框架(如Hadoop、Java、Ruby、C++)的基础上,FreeWheel把Go语言定位成用来实现轻量级服务或API的缺省编程语言,将......
  • 算法竞赛中C++ vector的常规操作
    算法竞赛中C++vector的常规操作对vector的理解vector官方将其翻译为向量,但实际上是变长的动态数组,其可以存放各种类型的对象。vector定义语法大致格式:vector<类型>数组名在初始情况下,vector的大小是0,也就是空的数组。下面都以int型举例。vector<int>v;/......
  • Docker|容器与Docker基础知识
    Docker|基础知识从虚拟机开始我们知道和一个单纯的应用程序相比,操作系统是一个很重而且很笨的程序,简称笨重,有多笨重呢?我们知道操作系统运行起来是需要占用很多资源的,刚装好的系统还什么都没有部署,单纯的操作系统其磁盘占用至少几十G起步,内存要几个G起步。假设我有一台机器,16G......
  • C++面试八股文:如何实现一个strncpy函数?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第31面:面试官:strcpy函数使用过吧?二师兄:用过。面试官:这个函数有什么作用?二师兄:主要用做字符串复制,将于字符从一个位置复制到另一个位置。面试官:strncpy函数也使用过吧,和strcpy有何不同?二师兄:strncpy多了一个size_t的参数,用于避......
  • 41.C++中有几种类型的new
    41.C++中有几种类型的new在C++中,new有三种典型的使用方法:plainnew,nothrownew和placementnew(1)plainnew言下之意就是普通的new,就是我们常用的new,在C++中定义如下:void*operatornew(std::size_tsize)throw(std::bad_alloc){void*ptr=std::malloc(size);......
  • 24.C++中const和static的作用
    static●不考虑类的情况○隐藏。所有不加static的全局变量和函数具有全局可见性,可以在其他文件中使用,加了之后只能在该文件所在的编译模块中使用○默认初始化为0,包括未初始化的全局静态变量与局部静态变量,都存在全局未初始化区○静态变量在函数内定义,始终存在,且只进行一次初始......
  • 25.C++的顶层const和底层const
    任意常量对象为顶层const,包括常量指针;指向常量的指针和声明const的引用都为底层const  顶层const(top-levelconst)表示指针本身是个常量int*constptr=&m;  此时指针不可以发生改变,但是指针所指向的对象值是可以改变的  底层const(low-levelconst)表示指针所指的对象是常量......
  • 32.C和C++的类型安全
    什么是类型安全?类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域。“类型安全”常被用来形容编程语言,其根据在于该门编程语言是否提供保障类型安全的机制;有的时候也用“类型安全”形容某个程序,判别的标准在于该程序是否隐含类型错误。类......
  • 34.C++有哪几种的构造函数
    34.C++有哪几种的构造函数C++中的构造函数可以分为4类:默认构造函数:在没有显式定义构造函数时,C++会自动生成一个默认构造函数,该函数没有参数,不执行任何操作。初始化构造函数(有参数)拷贝构造函数:当使用现有对象初始化新对象时,拷贝构造函数被调用。它的语法是在函数声明时使用一......
  • 33.C++中的重载、重写(覆盖)和隐藏的区别
    (1)重载(overload)  重载是指在同一范围定义中的同名成员函数才存在重载关系。主要特点是函数名相同,参数类型和数目有所不同,不能出现参数个数和类型均相同,仅仅依靠返回值不同来区分的函数。重载和函数成员是否是虚函数无关。举个例子:classA{...virtualintfun();......