【C/C++学院】0831-类与对象的异常/面试100题1-100

类与对象的异常

Cpp异常

#include <iostream>
#include <string.h>

using namespace std;

//标识错误的类型
class wrong
{
};

int intdiv(int a, int b)
{
	try
	{
		if (b==0)
		{
			throw 10;//可以是任何对象  wrong();
		}
		int c = a / b;
		return c;
	}
	catch (int data )//类型名
	{
		cout << "除法异常已经处理";
		return -1;
	}
}

int intdivA(int a, int b)
{
	return a / b;
}

void main()
{
	int x, y;
	cin >> x >> y;
	try
	{
		if (y==0)
		{
			throw "被除数为0";
		}
		else if (x==0)
		{
			throw "除数为0";
		}
	}
	catch (const char * s)
	{
		if (strcmp(s,"被除数为0")==0)
		{
			cout << "被除数为0异常,请重新输入";
			cin >> x >> y;
		}
		else  if (strcmp(s, "除数为0") == 0)
		{
			cout << "除数为0异常,请重新输入";
			cin >> x >> y;
		}
	}

	std::cout << intdiv(x, y);
	cin.get();
	cin.get();
	cin.get();
}

类的异常

#include<iostream>
using namespace std;

class wrong
{
};

class wrongA
{
};

class Array
{
public:
	Array(int num)
	{
		n = num;

		if (num<=0)
		{
			throw  wrong();
		}
		p = new int[num];//正确代码在throw之后,不会被执行,
		for (int i = 0; i < num;i++)
		{
			p[i] = 0;
		}
	}

	int & operator[](int num)
	{
		if (num < 0 || num>= n)
		{
			throw wrongA();
		}
		return p[num];
	}
protected:
private:
	int *p;
	int n;
};

void main()
{
	try
	{
		Array myarrar(2);
		myarrar[-1];
	}
	catch (wrongA  e)
	{
		cout << "下标越界";
	}
	catch (wrong  e)
	{
		cout << "程序发生异常,数组大小必须大于等于1";
	}

	cin.get();
}

void mainA()
{
	int a[3] = { 1, 2, 3 };
//	printf("%d", 2[a]);//*(2+a)
//	printf("%d", a[9886655]);
	getchar();
}
#include<iostream>
#include <string>

using namespace std;

class box   //正方体
{
public:
	box(int data)
	{
		cout << "开始构造";
		if (data ==0)
		{
			zero z1;
			z1.errorcode = 212;
			throw z1;
		}
		else if ( data >0 && data<100)
		{
			throw small();
		}
		else  if (data>10000)
		{
			throw big();
		}
		else if (data>100 && data<10000)
		{
			a = data;
		}
		else
		{
			throw wrong{};
		}
	}

    int  gettiji()
	{
		 return  a*a*a;
	}

	class zero
	{
	public:
		int errorcode;

	};
	class wrong{};
	class big{};
	class small{};
private:
	int a;//变长
};

void main()
{
	try
	{
		box newbox(0);
	}
	catch (box::zero w)
	{
	    if (w.errorcode==22)
	    {
			cout << "22号错误正方体长度不可以为0";
	    }
	    else
	    {
			cout << "fei22号错误正方体长度不可以为0";
	    }
	}
	catch (box::wrong)
	{
		cout << "正方体长度异常";
	}
	catch (box::big)
	{
		cout << "正方体长度太长";
	}
	catch (box::small)
	{
		cout << "正方体长度taiduan";
	}

	cin.get();
}

面试100题1-100

单独整理成文档

时间: 2024-10-25 13:09:30

【C/C++学院】0831-类与对象的异常/面试100题1-100的相关文章

【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题/函数增强

1.类和对象 成员函数,成员变量,抽象封装的能力. 求圆的面积: #include <iostream> using namespace std; class circle{ private: double m_r;//成员变量 public: void setR(double r)//成员函数 { m_r = r; } double getR() { return m_r; } double getS() { return 3.14*m_r*m_r; } }; void main() { c

java private-java 一个类的对象访问私有属性的问题

问题描述 java 一个类的对象访问私有属性的问题 public class ModifierTest1 { public static void main( String[] args ) { A a = new A(); //System.out.println(a.s); a.f(); } } class A { private int i; private String s; public A() { i = 123; s = "hello"; } public void f(

PHP的类与对象

自 PHP 5 起完全重写了对象模型以得到更佳性能和更多特性.这是自 PHP 4 以来的最大变化.PHP 5 具有完整的对象模型.  PHP 5 中的新特性包括访问控制,抽象类和 final 类与方法,附加的魔术方法,接口,对象复制和类型约束.  PHP 对待对象的方式与引用和句柄相同,即每个变量都持有对象的引用,而不是整个对象的拷贝.   属性: 类的变量成员叫做属性 属性声明关键字可以是public protected private 属性中的变量是可以初始化的但初始话必须是常数不能是计算式

PHP面向对象编程详解:类和对象

PHP面向对象编程详解:类和对象 从OOP的视角看,不应区分语言.无论是C++.无论是Java.无论是.net还有更多面向对象的语言,只要你了解了OO的真谛,便可以跨越语言,让你的思想轻松的跳跃.便没有对于Java..net.PHP 之间谁强谁弱的争执了. 希望这个介绍PHP5面向对象编程(OOP)的资料能让初学者受益,能让更多的PHPer开始转向OO的编程过程. 相对PHP4,PHP5在面向对象方面改变了很多.我们将只介绍PHP5环境下的面向对象.而我们必须改变自己来跟随PHP5的发展.如果代

PHP类和对象函数实例详解

1. interface_exists.class_exists.method_exists和property_exists:         顾名思义,从以上几个函数的命名便可以猜出几分他们的功能.我想这也是我随着对PHP的深入学习而越来越喜欢这门编程语言的原因了吧.下面先给出他们的原型声明和简短说明,更多的还是直接看例子代码吧. bool interface_exists (string $interface_name [, bool $autoload = true ]) 判断接口是否存在

C#体验编程技术 类与对象

编程|对象 组件编程不是对传统面向对象的抛弃,相反组件编程正是面向对象编程的深化和发展.类作为面向对象的灵魂在C#语言里有着相当广泛深入的应用,很多非常"Sharp"的组件特性甚至都是直接由类包装而成.对类的深度掌握自然是我们"Sharp XP"重要的一环. 类 C#的类是一种对包括数据成员,函数成员和嵌套类型进行封装的数据结构.其中数据成员可以是常量,域.函数成员可以是方法,属性,索引器,事件,操作符,实例构建器,静态构建器,析构器.我们将在"第五讲 构

php的类和对象(翻译:midiguy)

对象 /**********************************************************翻译:midiguy 翻译错误之处还请各位指出E-Mail:midiguy@263.netQQ:5149927***********************************************************/ 面向对象程序设计的来源得自于人们看待电话.汽车这些物体的想法.很多程序设计者在讨论面向对象程序设计的时候喜欢用"包装"或者"

初学Java入门--类与对象

初学|对象 4.2 类与对象 4.2.1 类 在面向对象的语言中,类是个很重要的概念.面向对象的方法把所有的处理对象进行归类.具有相同性质的对象归为一类.例如学校里有很多学生,每个学生都是一个对象,而"学生"则是一个类,它包含了所有在学校学习的人. 在Java语言里,对象是一组描述对象的属性和操作方法的集合,其中属性表明对象的状态,方法表明对象的行为.类是对象的定义.一个对象具有哪些属性和方法,由类来决定.从编程角度看,类是一种复合数据类型,它封装了一组变量和方法(函数). 声明一个类

走近VB.Net(一),VB中的族,类,对象(摘录部分MSDN)

对象 走近VB.Net(一),VB中的族,类,对象 VB.Net是面向对象(object-oriented)的,又称为物件(object)导向(oriented).在VB.Net中所有的变量类型都是基于object,而不是VariantDim x As Variant 会被升级为 Dim as object.如果你不理解对象,暂时你可以把他理解为一段数据,他是实际存在于内存的,所以对象以称为实例(instance)而类(class)就是类别,他定义一群对象,是一个对象的群体,并定义方法成员.所以