c++类的创建

Posted MKT-porter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++类的创建相关的知识,希望对你有一定的参考价值。

 

 CMakeLists.txt

注意 这里是是使用了  box.cpp 并没有连接h

add_executable(demo1 example.cpp box.cpp)

  

完整内容

 

# cmake needs this line
cmake_minimum_required(VERSION 3.1)

# Define project name
project(demo)


add_executable(demo1 example.cpp box.cpp)

  box.h

 

 

#ifndef BOX_H
#define BOX_H


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


// Box的定义
class Box
{
public:
        //1-1初始化函数

         Box(){}//构造函数1

        Box(double len,double bre,double hei){ //构造函数2
         length=len;
	 breadth=bre;
	 height=hei;
         cout<<"初始化函数"<<endl;
        }

        //1-2结束销毁函数
        ~Box()
        {
         cout<<"析构函数执行"<<endl;
         }

        //2普通函数
	double get(void);
	void set(double len,double bre,double hei);

//正常变量
private:
	double length;
	double breadth;
	double height;

//静态变量
public:
        static double result;//所有对象使用一个,节省空间
        //int Box::result=10;//静态变量可以初始化,但是只能在类外
        static double add1;
        static double add2;

//静态函数
//默认c++没有添加this指针
//主要用来访问静态成员
public:
        static 	double static_add(); 

};

#endif

  

box.cpp

 

 

//#ifndef BOX_H
//#define BOX_H

#include "box.h"


//正常函数
// Box的类外成员函数
double Box::get(void){

 return length*breadth*height;

}
// Box的类外成员函数
void Box::set(double len,double bre,double hei){

    length = len;
    breadth = bre;
    height = hei;

}




//静态变量初始化

double Box::result=10;//静态变量可以初始化,但是只能在类外
double Box::add1=11;//静态变量可以初始化,但是只能在类外
double Box::add2=12;//静态变量可以初始化,但是只能在类外


//静态函数
double Box::static_add(){

   result =add1+add2; //静态变量可以直接访问,非静态变量没有this指针无法访问
   return result;
  

 }


//#endif

  

 

example.cpp

 

 

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

#include "box.h"




//主函数调用
int main(int argc, char** argv)
{
  
   // box 1-2静态构建
   Box box1;
	//box1 的函数调用 public可以调用
   box1.set(1,2,3);
   double result=box1.get();
   cout<< "box1的计算结果  "<<result<<endl;
      // private 无法调用
      //box1.length=1;
      //box1.breadth=1;
      //box1.height=1;



  //1-2 动态创建
     Box *box2=new Box(1,2,3);
      double result2=box2->get();
     cout<< "box2的计算结果  "<<result2<<endl;
     //delete box2;//释放内存
     // cout<< "box2的释放空间  "<<result2<<endl;

    

    // 2-1静态变量
    cout<<"静态变量Box类定义"<<Box::result<<endl;        //物理含义  学生平均成绩
    cout<<"静态变量静态类box1"<<box1.result<<endl;     //物理含义  学生的总人数
    cout<<"静态变量动态类box2"<<box2->result<<endl;  //物理含义  学生总成绩累加
 
   //2-2静态方法

    cout<<"静态函数"<<Box::static_add()<<endl;
 






}

  

 

编译

mkdir build
cd build
cmake ..
make

  

 

以上是关于c++类的创建的主要内容,如果未能解决你的问题,请参考以下文章

有趣的 C++ 代码片段,有啥解释吗? [复制]

以下代码片段 C++ 的说明

C++ 代码片段执行

C++ 无法创建用户定义类的向量

创建 C++ 类的存根版本

此 Canon SDK C++ 代码片段的等效 C# 代码是啥?