2017-06-05 151 views
-5
Class Sample 
{ 
    int a,b; 
public : 
    Sample(int p,int q) 
    { 
    a=p; 
    b=q; 
    } 
    int sum() 
    { 
    return (a+b); 
    } 
}; 
int main() 
{ 
    Sample sm(10,20); 
    std::cout<< "Sum :"<< sm.sum()<<endl; 
} 

我是C++的初学者,所以请保持简单的语言以便我理解。 在此先感谢:)当内存分配给类?

+1

这是一个很好的资源:http://en.cppreference.com/w/cpp/language/lifetime – NathanOliver

+0

class是一个对象的_type_。对于大多数用途而言,它就像一个只存在于编译时的类别,并且在运行时不需要任何存储。该类的_Instances_ - 对象 - 确实需要存储,并且与上面链接的cppreference页面一样。 (一个类的函数的代码和其他一些东西,在运行时存储在内存中,但除非重新编译,否则它不会改变)。 – Useless

+0

您的示例中没有动态内存分配。 – crashmstr

回答

1

分配给一个类的唯一内存是静态成员变量。你的例子不包含任何静态成员变量。

内存分配为对象。您可以创建一个这样的对象,在该行:

Sample sm; 

这记忆将消失在对变量的声明的块的结尾,当它超出范围。

+0

所以我理解的是内存分配给Class对象,而不是一个类。只有具有静态成员的内存才会分配给类。 –

+0

*“该内存将在变量声明块的末尾消失”* - 不一定。您可以将函数的返回值绑定到reference-to-const并延长其范围之外的生存期。无论如何,可怜的问题可能不应该回答。 – IInspectable

+0

在这种情况下,不会使用内存,直到在类的定义的一个实例上面写着:Sample sm(10,20); –