我目前正在我的 React 项目中实现 Material-UI 库的 Accordion 组件:
我想要做的是将手风琴摘要(带有“手风琴 1”、“手风琴 2”的标题)居中,并且下方的展开图标(箭头)也居中。
在 Material-UI 文档 ( https://material-ui.com/components/accordion/ ) 中,显示的布局如下所示:

使用以下代码(如文档中所示):
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Accordion from '@material-ui/core/Accordion';
import AccordionSummary from '@material-ui/core/AccordionSummary';
import AccordionDetails from '@material-ui/core/AccordionDetails';
import Typography from '@material-ui/core/Typography';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
const useStyles = makeStyles((theme) => ({
root: {
width: '100%',
},
heading: {
fontSize: theme.typography.pxToRem(15),
fontWeight: theme.typography.fontWeightRegular,
},
}));
export default function SimpleAccordion() {
const classes = useStyles();
return (
<div className={classes.root}> …Run Code Online (Sandbox Code Playgroud) 来自 JavaScript 和 Python,我试图了解 C++ 类构造函数的细微差别和目的。
在下面的示例中,为什么允许在没有构造函数的情况下初始化属性?
class MyClass {
public:
int a = 1;
int b = 2;
};
Run Code Online (Sandbox Code Playgroud)
默认构造函数是否包括上述定义/初始化?下面两个例子有什么区别?:
1.
class MyClass {
public:
int a;
int b;
MyClass(){
a = 1;
b = 2;
}
};
Run Code Online (Sandbox Code Playgroud)
class MyClass {
public:
MyClass(){
// Some kind of variable declaration and definition like:
// this.a = 1;
// this.b = 2;
}
};
Run Code Online (Sandbox Code Playgroud)
对我来说,在没有构造函数的情况下进行初始化的选项听起来有点矫枉过正,而且令人困惑。在 Python 和 JavaScript 中,通常从构造函数声明和初始化所有变量,并且仅从构造函数开始。
这里的最佳做法是什么?
c++ constructor class constructor-overloading default-constructor