C++基础

原创 2006年06月13日 13:36:00

今天看了孙鑫的C++第二课,了解了C++的一些基本知识

1. struct 结构关键字

  在 C++ 中的结构类型和 C 一样,是用 struct 定义的

  struct  结构名
  {
     int i;
     int j;
     void fun()
     {
        cout<<"这里结构中的一个函数"<<endl;
     }
  };          -> 这里


  首先,结构是 struct 开始 以 " ;" 号结尾 ,  与 c 不同的是 C++ 中的结构类型

可以定义函数 , 如上所示   void fun() 这个函数。
 
  其次,结构中默认的访问类型为 public,每个一结构中有一个隐藏的 public
 
struct  结构名
  {
   public:                         -> 这里显示指示
     int i;
     int j;
     void fun()
     {
        cout<<"这里结构中的一个函数"<<endl;
     }
  };          -> 这里


同样,我们也可以以 private 来指示访问属性

struct  结构名
  {
  private:
     int i;
     int j;
     void fun()
     {
        cout<<"这里结构中的一个函数"<<endl;
     }
  };          -> 这里


这样,当我再声明一个结构类型变量时,将不能访问 i,j 这两个值 ,因为他们是私有的


由此想到 delphi 中结构(记录类型)的定义

在 delphi 中,这种定义方式叫记录类型

type
  record  结构/记录名
    i:integer;
    s:string;
  end;

下面是 delphi 联机帮助中的例子

type
  TPoint = record
    X, Y: Single;
  end;                  -> 定义了一个结构

  TVector = array[0..1] of TPoint;                   -> 定义了一个数组
  TMonth = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);       -> 集合类型
  TDate = record
    D: 1..31;
    M: TMonth;
    Y: 1900..1999;
  end;
const
  Origin: TPoint = (X: 0.0; Y: 0.0);                             -> 常量
  Line: TVector = ((X: -3.1; Y: 1.5), (X: 5.8; Y: 3.0));
  SomeDay: TDate = (D: 2; M: Dec; Y: 1960);

 


2 . 类 Class 的定义


 类的定义和 struct 的定义很相似

 class  类名
  {
     int i;
     int j;
     void fun()
     {
        cout<<"这里结构中的一个函数"<<endl;
     }
  };          -> 这里


类以 class 开始 以 " ;" 结束

在 类中,默认的访问为 private 

在类中有三种访问权限   public ,private ,protected

public    是公有的,没有限制
private          是私有的,只有本类才可以访问
protected        保护的,子类可以访问


这三种访问限制符和 delphi 中的一样

说到类,就会想到 构造方法和析构方法

C++中的构造方法和析构方法的定义

   构造方法是  和类名一样,但不可以有返回值

   析构方法是  ~加上类名,也不可以有返回值,还不可以带参数
 
   C++ 中一定要有构造方法,要是不写则编译器会给你指定一个默认的无参数的构造方法
  
例:

class Animal
{
public:
 Animal(int height,int weight)
 {
  cout<<"animal construct"<<endl;
 }
 ~Animal()
 {
  cout<<"animal destructor"<<endl;
 }
};

上面的例子的构造方法带了参数

要想继承 Animal 这个类,则定义方法为

如:
 
  class Fish: public Animal
  {
  };

注意一下  上面的 public  还可以替换为 private ,protected

这里的意思是子类对父类里变量的访问权限

public  没有变化,父类中的变量或函数的访问权限是什么则还是什么

private 父类中的所有的都为 private

protected  父类中 public 变为 protected ,而 protected 变为 private

对于 父类的 private 则还是 private


如果子类的构造函数没有参数,则父类有参数,则子类要显示调用父类的构造函数

#include <iostream.h>
class Animal
{
public:
 Animal(int height,int weight)
 {
  cout<<"animal construct"<<endl;
 }
 ~Animal()
 {
  cout<<"animal destructor"<<endl;
 }
 void eat()
 {
  cout<<"animal eat"<<endl;

 }
 void sleep()
 {
  cout<<"animal sleep"<<endl;

 }
protected:
 void breathe()
 {
  cout<<"animal breathe"<<endl;
 }
};

class fish : protected Animal
{
public:
 fish():Animal(10,10), a(20)                         -> 这里要显示调用
 {
  cout<<"fish construct"<<endl;
  cout<<a;
 }
 ~fish()
 {
  cout<<"fish destruct"<<endl;
 }
private:
 const int a;              -> 可以动态的指定一个常量
};

void main()
{
  //Animal a;
 // a.eat();
  fish f;
  f.breathe();

}


子类和父类的构造函数以及析构函数的执行顺序是

先父类的构造,而后是子类的构造,再是子类的析构,最后是父类的析构

 

 

 


跟着正哥0基础学C++——开始篇

要学习一门编程语言,首先要有一本适合的书本(当然这里指的是电子版,现在这个社会拿着纸质版的书籍学习知识的人越来越少了,不是不想,而是没那个条件,最近我也是买了三本心理书在办公室,中午休息的时候,或者下...
  • lionel_ran
  • lionel_ran
  • 2015年09月25日 22:42
  • 567

C++学习1:C++入门基础学习

说自己会C++简直丢人。大二学了C++,之后数据结构等于又学了一遍,现在真正接触代码了,什么都不会,因此还是得从头自学一下。手头得到一本C++ primer plus,就尽力抽时间把他学一遍吧,不求真...
  • lin453701006
  • lin453701006
  • 2016年10月27日 17:39
  • 574

C++ 基础概念

pointers(指针)、references(引用)、casts(类型转换)、arrays(数组)、constructors(构造)- 再沒有比这些更基础的议题了。几乎最简单的C++ 程序也会用到其...
  • qq_34882983
  • qq_34882983
  • 2017年01月11日 18:44
  • 597

对C++基础知识的总结(主要针对笔试面试)

C++的魅力在于其丰富多彩的性格特征:其行为方式既可以像C一样面向过程也可以面向对象(专注Class 很多年)、封装性(城府很深)、继承性(富二代)、多态性(多重人格/精神分裂/变态),谜一样的男神,...
  • black_yu
  • black_yu
  • 2016年03月19日 17:37
  • 1292

数论基础的补充讲解

数论基础的补充讲解 整除的一些性质: (1)能被2整除的数,个位上的数都能被2整除 (2*)能被4整除的数,个位和十位所组成的两位数能被4整除 (3*)能被8整除的数,百位、十位和个位所组成的三位数能...
  • ACMore_Xiong
  • ACMore_Xiong
  • 2015年08月19日 00:45
  • 2142

C++编程基础题

题目: 1.字符串转为int 输入1234 输出1234 注意:输入的必须为字符串,输出必须为int型 2.偶数位转为大写 例如: 输入:lanzhihui is a boy! 输出:lAnZh...
  • byr940923
  • byr940923
  • 2015年04月02日 01:06
  • 147

C++语言基础(笔记全文)

C++语言基础 一、C++文件的构成 1、头文件 在创建MFC应用时,类向导会为每个头文件添加宏定义,例如:     #if !defined(AFX_ODBCVIEW_H__B82AC4A2...
  • maomao092092
  • maomao092092
  • 2013年03月01日 10:18
  • 6527

C++基础知识汇总

C++面试题——基础概念篇 唐璐 http://blog.csdn.net/worldwindjp/         面试C++程序员的时候一般都是3板斧,先是基础问答,然后一顿...
  • weiyuefei
  • weiyuefei
  • 2016年08月01日 20:59
  • 951

C++ STL 基础及应用(1) STL历史、组成和使用方法

本章节主要介绍 STL 的历史和 STL 的基本组成内容,以及使用方法。
  • Raito__
  • Raito__
  • 2016年05月20日 23:55
  • 1180

C++基础学习教程(八)

引入 在进行下一步的学习之前,我们需要厘清几个概念. RAII 首先介绍一个编程习语,”RAII”(ResourceAcquisition Is Initialization,资源获取即为初始化),他...
  • hu1020935219
  • hu1020935219
  • 2014年07月30日 14:47
  • 2428
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++基础
举报原因:
原因补充:

(最多只允许输入30个字)