  \documentclass[a4paper, 12pt, fleqn]{book}
 
\usepackage{fancybox} 
\usepackage{listings}   
\usepackage{color}   

\usepackage{xepersian}
\settextfont[Scale=1]{XB Zar} 
\setdigitfont[Scale=1.0]{XB Zar}
\setlatintextfont[Scale=0.9]{Times New Roman}



\newcommand{\Pbox}[1]{\mbox{\rl{#1}}}  

\newcommand{\Ebox}[1]{\lr{#1}}  

 
 \lstset{
language=C++,
frame=trBL,
% backgroundcolor=\color{yellow},
numbers=left,
numberstyle=\scriptsize,
frameround=fttt,
 keywordstyle=\color{red}\bfseries, 
showspaces=false,           % Leerzeichen anzeigen ?
showtabs=false,             % Tabs anzeigen ?
xleftmargin=17pt,
framexleftmargin=17pt,
framexrightmargin=5pt,
framexbottommargin=4pt,
%backgroundcolor=\color{lightgray},
showstringspaces=false ,
breaklines=true,
texcl=true, 
basicstyle=\footnotesize\ttfamily,
}  


\makeatletter
\renewcommand\lstlistingname{\if@RTLmain برنامه\else Listings\fi}
\long\def\@makecaption#1#2{%
   \vskip\abovecaptionskip
   \sbox\@tempboxa{#1: #2}%
   \ifdim \wd\@tempboxa >\hsize
     \if@RTLmain\beginR\fi#1: #2\if@RTLmain\endR\fi\par
   \else
     \global \@minipagefalse
     \hb@xt@\hsize{\if@RTLmain\beginR\fi\hfil\box\@tempboxa\hfil\if@RTLmain\endR\fi}%
   \fi
   \vskip\belowcaptionskip}%

\makeatother
\begin{document} 

%------------------------------ 
\section{مشکل محیط  \Ebox{lstlisting} } 
%------------------------------ 


هنگامی که یک برنامه توسط محیط \Ebox{lstlisting} نوشته می‌شود، دو حالت ممکن است بوجود بیاید:
\begin{enumerate} 
\item یا اینکه از دستور \Ebox{ltr} برای تنظیم نوشتن به‌صورت انگلیسی استفاده می‌شود که نتیجه به‌صورت زیر در می‌آید
که در آن عنوان محیط با کلمه‌ی \Ebox{Listing} شروع شده‌است. 
البته این موضوع طبیعی هم هست و در تعاریف \Ebox{xepersian} هم همین تعریف شده.



\begin{LTR}
\begin{lstlisting}  [caption={نحوه‌ی تعریف کلاس در زبان},label={ب-کلاس-01} ] 
class ClassName
  { 
     private:
          // \Pbox{متغیرها و توابع خصوصی قابل دسترس فقط توسط خود کلاس.}
     public:
          //\Pbox{  متغیرها و توابع عمومی قابل دسترس در کلاس‌ها و قسمت‌های دیگر برنامه.}
     protected:
          //\Pbox{  متغیرها و توابع حفاظت شده قابل دسترس فقط توسط خود کلاس و فرزندانش. }
  }; 

\end{lstlisting}  
\end{LTR} 

\end{enumerate}  
حال سوال این است که تکلیف چیست؟


\end{document} 
