C++学习笔记 第18课 对象的构造(中)

1.构造函数

  • 构造函数可以根据需要定义参数
  • 一个类中可以存在多个重载的构造函数

友情提示:
对象的定义:申请对象的空间并调用构造函数
对象声明:告诉编译器存在这样一个对象
在这里插入图片描述
构造函数在定义对象时会自动调用
在这里插入图片描述

18-1 带参数的构造函数

#include <iostream>

using namespace std;

class cTest
{
public:
	cTest() 
	{ 
		this->i = 1;
		cout << "cTest() begin" << endl; 
	}
	
	cTest(int iVal)
	{ 
		this->i = iVal;
		cout << "cTest(int iVal) begin" << endl; 
	}
private:
	int i;
};


int main()
{
	cTest t;
	cTest t1(2);

	return 0;
}

结果:
在这里插入图片描述

18-2 构造函数手动调用

#include <stdio.h>
class Test
{
private:
    int m_value;
public:
    Test() 
    { 
        printf("Test()\n");
        
        m_value = 0;
    }
    Test(int v) 
    { 
        printf("Test(int v), v = %d\n", v);
        
        m_value = v;
    }
    int getValue()
    {
        return m_value;
    }
};
int main()
{
    Test ta[3] = {Test(), Test(1), Test(2)};      
    
    for(int i=0; i<3; i++)
    {
        printf("ta[%d].getValue() = %d\n", i , ta[i].getValue());
    }
    
    Test t = Test(100);
    
    printf("t.getValue() = %d\n", t.getValue());
    
    return 0;
}
运行结果
 v), v = 2
ta[0].getValue() = 0
ta[1].getValue() = 1
ta[2].getValue() = 2
Test(int v), v = 100
t.getValue() = 100

3.数组类

在这里插入图片描述
intArray.h

#pragma once
class intArray
{
private:
	int iArrayLen;
	int* piArray;
public:
	intArray();
	intArray(int len);
	int getLength();
	bool get(int index,int &value);
	bool set(int index,int value);
	~intArray();
};

intArray.cpp

#include "intArray.h"

intArray::intArray()
{

}

intArray::intArray(int iLen)
{
	piArray = new int[iLen];
	for (int i = 0; i < iLen; i++)
	{
		piArray[i] = 0;
	}
	iArrayLen = iLen;
}

int intArray::getLength()
{
	return iArrayLen;
}

bool intArray::get(int index, int& value)
{
	if(index >= 0 && index < getLength())
	{
		value = piArray[index];
		return true;
	}
	else
	{
		return false;
	}
}

bool intArray::set(int index, int value)
{
	if (index >= 0 && index < getLength())
	{
		piArray[index] = value;
		return true;
	}
	else
	{
		return false;
	}
}

intArray::~intArray()
{
	delete[]piArray;
}

main.cpp

#include <iostream>
#include "intArray.h"
using namespace std;

int main()
{
	intArray iArray(5);
	int iValue;
	if (iArray.set(4, 9) && iArray.get(4, iValue))
	{
		printf("%d\n",iValue);
	}

	for (int i = 0; i < iArray.getLength(); i++)
	{
		iArray.get(i, iValue);
		printf("%d %d\n", i, iValue);
	}

	return 0;
}

结果:
在这里插入图片描述

4.小结:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值