小编Alo*_*ave的帖子

C++中最小的标准兼容对象大小?

我知道空类的大小由标准定义为非零.在大多数实现中,它通常是 1个字节.
但是,C++标准是否指定了对象的最小可能大小?假设按照标准,空类对象的大小至少为 1个字节,这是合乎逻辑的.

c++ sizeof

2
推荐指数
1
解决办法
157
查看次数

关于例外的问题

我只是在视觉工作室中使用异常,并且使用上面的代码我期待,因为我的异常规范没有提到任何应该抛出bad_exception的内容.但实际发生的是异常被适当的处理程序捕获.为什么这样?我错过了IDE中的某些设置或其他内容吗?

虽然我被困在上面提到的,实际上我试图找到问题的答案,如果我有一个例外空白规范然后被称为什么?在意外()方法或*bad_exception*将如果双方以什么顺序来抛出?这是代码.

 #include "stdafx.h"  
 #include <stdio.h>  
 #include <exception>  
 #include <iostream>  


using namespace std;

class A
{
    public:
        int i;
};

void myunexpected () 
{
    cerr << "unexpected called\n";
}

void doSomething(void) throw();
void doSomething(void) throw()
{
    A obj;
    obj.i= 100;
    throw obj;
}


int _tmain(int argc, _TCHAR* argv[])
{
    set_unexpected (myunexpected);
    try 
    {
        doSomething();
    }
    catch (bad_exception be) 
    {
        puts("Caught something");
    }
    catch (A &obj) 
    {
        puts("Caught Integer");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ exception-handling

1
推荐指数
1
解决办法
265
查看次数

如何在Android中以编程方式创建联系人组?

我想创建一个联系人组,给它一个特定的名称,然后添加联系人.

我可以通过使用RawContacts课程来建立联系,但我不知道如何

  1. 创建一个联系人组
  2. 然后将联系人添加到该特定组.

有人可以帮我解决一些示例代码吗?

android

1
推荐指数
1
解决办法
7379
查看次数

有关const如何修改存储行为的说明

http://www.ideone.com/kRaMj

我在algogeeks论坛上发现了这个.任何人都可以解释价值i是如何仍然0,但*p显示2虽然他们的地址是相同的.

#include<stdio.h>

int main() 
{
    const int i = 0;
    int * p ;
    p = (int *) & i;
    *p = 2;

    printf("(i,p): %x %x \n",&i,p);
    printf("(i,p): %d %d \n",i,*p);
}
Run Code Online (Sandbox Code Playgroud)

该计划的输出是:

(i,p): bfdf6234 bfdf6234 
(i,p): 0 2 
Run Code Online (Sandbox Code Playgroud)

c const

1
推荐指数
1
解决办法
89
查看次数

C++ - 根据上下文实例化派生类

假设我有200个名为class1,class2等的类,派生自类,以及1到200之间的整数.有没有办法根据我的整数值明确地实现一个派生类?显然我可以手动检查每个值,但我想知道C++中有什么更灵活的东西

c++

1
推荐指数
1
解决办法
147
查看次数

递归函数的分段错误

我只是想测试一下.我想知道我做错了什么?

   #include <iostream>
   using namespace std;
   unsigned long pwr(unsigned long n, unsigned long m)
   {
          if(m == 0)
            n = 1;
          if(m == 1)
            n = n;
          n = pwr(n, m/2) * pwr(n, m/2);
          return n;
   }

   int main ()
   {
          unsigned long n(2), m(16);
          cout << pwr(n, m);
          return 0;
   }
Run Code Online (Sandbox Code Playgroud)

输出是

Segmentation fault
Run Code Online (Sandbox Code Playgroud)

c++ g++

1
推荐指数
1
解决办法
3070
查看次数

为什么可变长度数组在这个c ++程序中编译?

据说数组是在编译时分配的,然后大小必须const在编译时可用.
但是下面的例子也有效,为什么?

#include <iostream>                                  
#include <vector>                                                 
using namespace::std;                                             
int main()                                                       
{                                                    
    vector<int> ivec;                                               
    int k;                                                  
    while(cin>>k)                                              
        ivec.push_back(k);                                     
    int iarr[ivec.size()];                                           
    for (size_t k=0;k<ivec.size();k++)                                 
    {                                                             
        iarr[k]=ivec[k];                                               
        cout<<iarr[k]<<endl;                                   
    }                                                            
    return 0;                                                    
}   
Run Code Online (Sandbox Code Playgroud)

c++ arrays

1
推荐指数
1
解决办法
82
查看次数

c ++"没有匹配的函数来调用

当我尝试传入一个数组作为参数时,我得到:

"No matching function to call to ' table::retrieve(const char[16], item&, int)'
Run Code Online (Sandbox Code Playgroud)

我试图用这个函数调用

program.reference.retrieve("Abecean Longfin", program.client_item, 1);
Run Code Online (Sandbox Code Playgroud)

功能是

int table::retrieve(char item_in[],item*item_list, int name_flag)
Run Code Online (Sandbox Code Playgroud)

我确信这是一件我不理解的简单事情,但我是新手.

c++ arrays pointers parameter-passing

1
推荐指数
1
解决办法
1090
查看次数

C++中的LNK2019错误

我收到这个奇怪的链接器错误:

Error   1   error LNK2019: unresolved external symbol "public: virtual __thiscall Data::~Data(void)" (??1Data@@UAE@XZ) referenced in function "public: virtual __thiscall Job::~Job(void)" (??1Job@@UAE@XZ) C:\...\Job.obj

Error   2   error LNK2019: unresolved external symbol "public: __thiscall List::DataNode::DataNode(class List::DataNode const &)" (??0DataNode@List@@QAE@ABV01@@Z) referenced in function "public: __thiscall List::List(class List const *)" (??0List@@QAE@PBV0@@Z)    C:\...\List.obj
Run Code Online (Sandbox Code Playgroud)

从第一个错误描述中,它可能与析构函数有关.

我有一个带有纯虚析构函数的空和抽象数据类:

virtual ~Data()=0;
Run Code Online (Sandbox Code Playgroud)

和一个派生自数据的类,带有一个简单的析构函数实现:

Job::~Job()
{
}
Run Code Online (Sandbox Code Playgroud)

你能发现问题吗?我该如何解决?谢谢!

c++

1
推荐指数
1
解决办法
252
查看次数

如何在C++中更改变量的常量?

以下是我的代码

const int i = 10;
cout<<i<<"\n";
int *ip = (int*)&i;
*ip = 20;
cout<<i<<"\n";
Run Code Online (Sandbox Code Playgroud)

我期待输出1020.
但我得到输出1010.

我能够编译程序,我没有在编译时或运行时得到任何错误,但没有得到预期的结果.如果我删除了变量i的常量,为什么新值没有分配给它?

如果有人能够解释发生了什么以及可以做些什么来实现我的预期结果,我将不胜感激.

c++ const

1
推荐指数
1
解决办法
1930
查看次数