鱼C论坛

 找回密码
 立即注册
查看: 2330|回复: 2

求高手解惑

[复制链接]
发表于 2012-2-9 21:58:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<iostream>
#include<string.h>
#include<stdexcept>
using namespace std;
class  MyException
{
   private:
    char msg[100];
   public:
     MyException()
     {
        cout<<"Constructor2"<<endl;
     }
     MyException(const char *c)
     {
          cout<<"Constructor"<<endl;
          strcpy(msg,c);
     }
     void what()
     {
         cout<<msg<<endl;
     }
     ~MyException()
      {
         cout<<"Disconstructor"<<endl;
      }
};
void  Div(int a,int b)
{
   if(b==0)
     {
       throw (MyException("b==0"));
      // cout<<"div"<<endl;
     }
}

int main()
{
   int a,b;
   cin>>a>>b;
   try
   {
     Div(a,b);
   }
   catch(MyException e)
   {
      e.what();
   }
   return 0;
}
请问throw (MyException("b==0"));中,为什么MyException后可以直接赋值?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-2-9 22:22:34 | 显示全部楼层
大哥 !!哪来的直接赋值啊!
throw (MyException("b==0"));
MyException()函数接受的是一个指针参数 也可以说是个字符串!
("b==0")看清  !有引号的
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-2-9 23:01:19 | 显示全部楼层

那是一个类,不是一个函数
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-11 03:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表